// source --> https://herbifeet.com/wp-content/plugins/wordpress_image_mapper/js/frontend/jquery.image_mapper.js?ver=4.9.24 /* jQuery Image Mapper v2.8 Pin mapper for custom images. Copyright (c) 2014 Br0 (shindiristudio.com) Project site: http://codecanyon.net/ Project demo: http://shindiristudio.com/imgmapper */ (function($){//zasticen scope $.fn.imageMapper = function(options) { /** *Default plugin options */ var defaults = { itemOpenStyle: 'click',//click,hover itemDesignStyle: 'fluid',//fluid or responsive pinScalingCoefficient: 0, categories:false, showAllCategory: true, allCategoryText: 'All', advancedPinOptions: false, pinClickAction:'none',//link, content, lightboxImage, lightboxIframe, contentBelow, none pinHoverAction:'content',//content, none lightboxGallery: false, //enable galery on opened pin lightboxes mapOverlay: false, blurEffect: false, slideAnimation: false }; /** * Settings that are used throughout the plugin */ var settings = $.extend( {}, defaults, options); if (settings.pinScalingCoefficient>0) settings.pinScalingCoefficient = 1; else if (settings.pinScalingCoefficient<=0) pinScalingCoefficient = 0; /** * Global plugin variables */ var map_original_width; var map_original_height; var clicked; var tab_clicked; var map_width; var map_height; var pinType1 = 'imapper-pin-type-1', pinType2 = 'imapper-pin-type-2', pinType3 = 'imapper-pin-type-3', pinType4 = 'imapper-pin-type-4', pinType5 = 'imapper-pin-type-5', pinTypeCustom = 'imapper-pin-type-custom'; var parent_width; var contentWrapperOld; var contentOld; var contentHeaderOld; var contentTextOld; var contentTabOld; var contentAdditionalOld; var width; var height; var cHeight; var cWidth; var designStyle; var multiplier; var multiplierArea; var pluginHref = window.location.href; var pluginUrl = pluginHref.substring(0, pluginHref.lastIndexOf('/')+1 ); var my_debug_12=false; var my_use_new_code_responsive=true; /** * this is the plugin container */ return this.each( function() { var id = $(this).attr('id').substring(11, $(this).attr('id').indexOf('-')); imapperInit(id, settings); width = $(this).find('.imapper-content').width(); height = $(this).find('.imapper-content').height(); if(my_debug_12){ console.log('Imapper content width',{w:width,h:height}); } map_width = $(this).find('#imapper' + id + '-map-image').width(); map_height = $(this).find('#imapper' + id + '-map-image').height(); var my_w_12=$('#imapper' + id + '-map-image').data('w'); var my_h_12=$('#imapper' + id + '-map-image').data('h'); //console.log('My w',{w:my_w_12,h:my_h_12}); var map_original_size = imapperGetOriginalSize('#imapper' + id + '-map-image'); if((my_w_12!=''&&my_h_12!='')){ map_original_width=parseInt(my_w_12); map_original_height=parseInt(my_h_12); }else { map_original_width = map_original_size[0]; map_original_height = map_original_size[1]; } var parent_width = ($(this).parent().width() < map_original_width) ? $(this).parent().width() : map_original_width; if((my_use_new_code_responsive)&&(settings.pinScalingCoefficient==0)){ if ($(window).width() <= 600 && settings.itemDesignStyle == 'responsive'){ //var parent_width = ($(this).parent().width() < map_original_width) ? $(this).parent().width() : map_original_width; var my_c_12=map_original_width/map_original_height; if(my_debug_12){ console.log('Coeff',{my_c_12:my_c_12}); } //map_original_width=600; // If width larger than height if(my_c_12>1){ //var my_c12_12=map_height/map_original_width; //if(map_original_width>600){ var c=map_original_width/600; map_original_width=600; map_original_height=map_original_width/my_c_12; //} }else { //if(map_original_width>600){ var c=map_original_width/600; map_original_width=600; map_original_height=map_original_width/my_c_12; //map_original_height=map_original_width*c; //else map_original_height=map_original_width/c; //} } //map_original_width=parseInt($(".imapper"+id+"-pin-content-wrapper").data('width'))*2; //map_original_height=parseInt($(".imapper"+id+"-pin-content-wrapper").data('height'))*2; /*if(map_original_width>600){ map_original_width=parseInt($(".imapper"+id+"-pin-content-wrapper").data('width')); map_original_height=parseInt($(".imapper"+id+"-pin-content-wrapper").data('height')); } if(map_width>map_original_width){ map_original_width=map_width; } if(map_height>map_original_height){ map_original_height=map_height; }*/ /*if (settings.pinScalingCoefficient!=0) { multiplier = settings.pinScalingCoefficient; } else { multiplier = multiplierArea; } }*/ parent_width = $(this).parent().width(); }else { /*var my_c_12=map_original_width/map_original_height; if(my_debug_12){ console.log('Coeff',{my_c_12:my_c_12}); } //map_original_width=600; if(my_c_12>1){ map_original_width=$(this).parent().width(); map_original_height=map_original_width/my_c_12; }else { map_original_width=$(this).parent().width(); map_original_height=map_original_width/my_c_12; } //parent_width = $(this).parent().width(); parent_width = ($(this).parent().width() < map_original_width) ? $(this).parent().width() : map_original_width; */ } } if(my_debug_12){ console.log('Imapper content width',{w:map_original_width,h:map_original_height}); } var my_mult_12_pins=1; multiplierArea = parent_width / map_original_width; if((my_use_new_code_responsive)&&(settings.pinScalingCoefficient==0)){ if ($(window).width() > 600 && settings.itemDesignStyle == 'responsive'){ multiplierArea=1; } } if (settings.pinScalingCoefficient!=0) { multiplier = settings.pinScalingCoefficient; } else { multiplier = multiplierArea; } /*if((my_use_new_code_responsive)&&(settings.pinScalingCoefficient==0)){ if(map_height>map_width){ multiplierArea = map_height / map_original_height; } }*/ cHeight = new Array(); cWidth = new Array(); designStyle = settings.itemDesignStyle; clicked = new Array(); tab_clicked = new Array(); contentWrapperOld = new Array(); contentOld = new Array(); contentHeaderOld = new Array(); contentTextOld = new Array(); contentTabOld = new Array(); contentAdditionalOld = new Array(); $(this).css('width', parent_width); /* * Set pin classes depending of selected pin or custom pin to all active pins */ $('.imapper' + id + '-pin').each( function() { var pinId = getPinId($(this)); if ($(this).attr('src') !== undefined ) { if ($(this).attr('src').indexOf('images/icons/1/') >= 0) { // Glowing pin $(this).addClass(pinType1); } else if ($(this).attr('src').indexOf('images/icons/2/') >= 0) { // Sliding pin $(this).addClass(pinType2); } else if ($(this).attr('src').indexOf('images/icons/3/') >= 0) { // Shadow pin $(this).addClass(pinType3); } else if ($(this).attr('src').indexOf('images/icons/4/') >= 0) { // Default map pin $(this).addClass(pinType4); } else if ($(this).attr('src').indexOf('images/icons/5/') >= 0) { // Pin with icon $(this).addClass(pinType5); } else { // Pin with tabs, area pin and custom pin $(this).addClass(pinTypeCustom); } } clicked[pinId] = 0; tab_clicked[pinId] = 1; var img_width = $(this).width(); var img_height = $(this).height(); var radius = parseInt($(this).siblings('.imapper-content').css('border-bottom-left-radius')) / 2 + 1; contentTabOld[pinId] = new Array(); contentAdditionalOld[pinId] = new Array(); var tNumber = 1; var tabValueNumber = $(this).siblings('.imapper-value-tab-number'); if (tabValueNumber.length > 0) tNumber = parseInt(tabValueNumber.html()); cHeight[pinId] = ($(window).width() <= 600 && designStyle == 'responsive') ? map_original_height - ((tNumber > 1) ? tNumber : 0) * (75 - radius) : height; cWidth[pinId] = ($(window).width() <= 600 && designStyle == 'responsive') ? map_original_width - ((tNumber > 1) ? tNumber : 0) * (75 - radius) : width; //console.log('CH',{cH:cHeight,cW:cWidth}); if ($(this).hasClass(pinType4)) $(this).addClass('pin-mini-style'); else $(this).addClass('pin-style'); if ($(this).hasClass(pinType2) || $(this).hasClass(pinType1)) $(this).parent().find('.imapper-content').wrapInner('
'); if ($(this).hasClass(pinType5)) { var my_w_12=0; $(this).parent().find('.imapper-pin-icon').each(function(i,v){ var w_12_12=$(v).width(); if(w_12_12 0 ) { $(this).addClass('active'); } // Other css $(this).css('right', ''); $(this).css('left', left_tab + 'px'); left_tab += 42; $(this).css('z-index', ''); $(this).css('bottom', ''); } }); $(this).find('.imapper-content').each(function(index) { /* * Fix for height for the other functions * Width defined on line 97 * @since 2.8 */ $(this).css('width', width + 'px'); var tNumber = 1; var tabValueNumber = $(this).parent().siblings('.imapper-value-tab-number'); if (tabValueNumber.length > 0) tNumber = parseInt(tabValueNumber.html()); if (tNumber != 1) { if (index == 0) { $(this).css('border-top-left-radius', '0px'); $(this).css('border-top-right-radius', '0px'); } else $(this).css('border-radius', '0px'); $(this).find('.imapper-content').css('border-width', '0 1px 1px 1px'); } }); } else if (position == 'top' || position == 'bottom') { var right = parseInt($(this).css('width')) + 25 - radius; var right_tab = parseInt($(this).css('width')); $(this).find('.imapper-content-additional').each(function() { $(this).css('width', '0px'); $(this).find('.imapper-content-inner').css('display', 'none'); $(this).css('right', right + 'px'); right += 25 - radius; }); $(this).find('.imapper-content-tab').each(function() { $(this).css('width', '25px'); $(this).css('height', height + 'px'); $(this).find('a').css('height', height + 'px'); $(this).css('border-top-left-radius', $(this).parent().find('.imapper-content').css('border-top-left-radius')); $(this).css('border-bottom-left-radius', $(this).parent().find('.imapper-content').css('border-bottom-left-radius')); $(this).css('border-style', 'solid'); $(this).css('border-width', '1px 0 1px 1px'); $(this).css('border-color', borderColor); $(this).find('a').css('padding', '5px 0 0 5px'); if (position == 'bottom') $(this).css('bottom', '0px'); $(this).css('right', right_tab + 'px'); right_tab += 25 - radius; $(this).css('z-index', zindextab); zindextab--; /* * Set tabs width differently for window width < 600 * @since 2.8 */ if ( $(window).width() <= 600 ) { // Add css class active to first tab only if ( $(this).attr('id').indexOf('-content-tab') > 0 ) { $(this).addClass('active'); } // Other css $(this).css('right', ''); $(this).css('left', left_tab + 'px'); left_tab += 42; $(this).css('z-index', ''); } }); $(this).find('.imapper-content').each(function(index) { /* * Fix for height for the other functions * height defined on line 98 * @since 2.8 */ $(this).css('height', height + 'px'); var tNumber = 1; var tabValueNumber = $(this).parent().siblings('.imapper-value-tab-number'); if (tabValueNumber.length > 0) tNumber = parseInt(tabValueNumber.html()); if (tNumber != 1) { if (index == 0) { $(this).css('border-top-left-radius', '0px'); $(this).css('border-bottom-left-radius', '0px'); } else $(this).css('border-radius', '0px'); $(this).find('.imapper-content').css('border-width', '1px 1px 1px 0'); } }); } } /* * Add class to pin that have mutliple tabs to style responsive behavior * Only for window width < 600 * @since 2.8 */ if ( $(window).width() <= 600 ) { if ( $(this).siblings('.imapper' + id + '-pin').parent('.imapper-pin-wrapper').find('.imapper-content').size() > 1 ) { $(this).siblings('.imapper' + id + '-pin').parent('.imapper-pin-wrapper').addClass('imapper-responsive-tab-pin-tabs'); } } if ($(this).siblings('.imapper' + id + '-pin').attr('src')!==undefined) { var indexPosition = $(this).siblings('.imapper' + id + '-pin').attr('src').indexOf('images/'); var position = $(this).parent().find('.imapper' + id + '-pin').attr('src').indexOf('/images/'); pluginUrl = $(this).parent().find('.imapper' + id + '-pin').attr('src').substring(0, position); $(this).siblings('.imapper-pin-color').css('behavior', 'url(' + pluginUrl + '/pie/PIE.htc)'); } }); var hheight; $(this).find('.imapper-content-text').each(function(index) { if (index == 0) hheight = $(this).siblings('.imapper-content-header').height(); if ($(this).siblings('.imapper-content-header').html() != '') { var dis = $(this).closest('.imapper-content-inner'); if (dis.length==0) dis = $(this); if ($(dis).closest('.imapper-content-wrapper').siblings('img').hasClass(pinType2)) $(this).css('height', $(this).parent().height() - hheight - 20 + 'px'); else $(this).css('height', $(this).parent().height() - hheight - 30 + 'px'); } else { $(this).siblings('.imapper-content-header').css('padding', '0px'); $(this).css('height', $(this).parent().height() - 20 + 'px'); } $(this).mCustomScrollbar({'scrollInertia':300}); }); if(my_debug_12){ console.log('Multiplier',{multiplier:multiplier,multiplierAra:multiplierArea}); } if (multiplier <= 1) { $(this).find('.imapper-pin-wrapper > img').parent().css('transform', 'scale(' + multiplier + ')'); var windowWidth = parseInt($(window).width()); if (settings.pinScalingCoefficient!=0 && windowWidth<600 && settings.itemDesignStyle == 'responsive' ) { $(this).find('.imapper-pin-wrapper > img ~ .imapper-content-wrapper').css({'transform': 'scale(' + (multiplierArea/multiplier) + ')','transform-origin':'0% 0%', '-webkit-transform-origin':'0% 0%', '-moz-transform-origin':'0% 0%', '-ms-transform-origin':'0% 0%', '-o-transform-origin':'0% 0%'}); } } $(this).find('.imapper-pin-wrapper > .imapper-area-pin').parent().css('transform', 'scale(' + multiplierArea + ')'); var windowWidth = parseInt($(window).width()); if (windowWidth>600 || settings.itemDesignStyle == 'fluid') { $(this).find('.imapper-pin-wrapper > img ~ .imapper-content-wrapper').each(function(){ var openPosition = $(this).parent().data('open-position'); switch(openPosition) { case 'top': $(this).css({'transform': 'scale(' + (multiplier) + ')','transform-origin':'center bottom','-webkit-transform-origin':'center bottom','-moz-transform-origin':'center bottom','-ms-transform-origin':'center bottom','-o-transform-origin':'center bottom'}); break; case 'bottom': $(this).css({'transform': 'scale(' + (multiplier) + ')','transform-origin':'center top','-webkit-transform-origin':'center top','-moz-transform-origin':'center top','-ms-transform-origin':'center top','-o-transform-origin':'center top'}); break; case 'left': $(this).css({'transform': 'scale(' + (multiplier) + ')','transform-origin':'right center','-webkit-transform-origin':'right center','-moz-transform-origin':'right center','-ms-transform-origin':'right center','-o-transform-origin':'right center'}); break; case 'right': $(this).css({'transform': 'scale(' + (multiplier) + ')','transform-origin':'left center','-webkit-transform-origin':'left center','-moz-transform-origin':'left center','-ms-transform-origin':'left center','-o-transform-origin':'left center'}); break; } }); } $(this).css('visibility', 'visible'); /* =========================================================*/ /* Click on content tab if mutli tabs /* ==========================================================*/ $(document).on('click', '.imapper-content-tab a', function(e) { e.preventDefault(); var pinId = getPinId($(this).closest('.imapper-content-wrapper').siblings('.imapper-pin-type-1')); var newClick = parseInt($(this).html()); var dis = $(this).parent().parent(); var position = $(this).closest('.imapper-pin-wrapper').data('open-position'); if (newClick != tab_clicked[pinId] && $(window).width() > 600) { if (position == 'left' || position == 'right') { if (newClick > tab_clicked[pinId]) { $(dis).find('.imapper-content').eq(newClick - 1).stop(true,true); $(dis).find('.imapper-content').eq(tab_clicked[pinId] - 1).find('.imapper-content-inner').fadeOut('fast'); $(dis).find('.imapper-content').eq(tab_clicked[pinId] - 1).animate({ height: 0}, {duration: 400}); for (var i = tab_clicked[pinId]; i < newClick; i++) { var bottomNew = parseInt($(dis).find('.imapper-content-tab').eq(i - 1).css('bottom')) - cHeight[pinId]; $(dis).find('.imapper-content-tab').eq(i - 1).animate({ bottom: bottomNew}, {duration: 400}); if (i != tab_clicked[pinId]) $(dis).find('.imapper-content').eq(i - 1).css('bottom', parseInt($(dis).find('.imapper-content').eq(i - 1).css('bottom')) - cHeight[pinId]); } $(dis).find('.imapper-content').eq(newClick - 1).find('.imapper-content-inner').fadeIn('fast'); var bottomNew2 = parseInt($(dis).find('.imapper-content').eq(newClick - 1).css('bottom')) - cHeight[pinId]; $(dis).find('.imapper-content').eq(newClick - 1).animate({ height: cHeight[pinId], bottom: bottomNew2}, {duration: 400}); } else { $(dis).find('.imapper-content').eq(newClick - 1).stop(true,true); $(dis).find('.imapper-content').eq(tab_clicked[pinId] - 1).find('.imapper-content-inner').fadeOut('fast'); var bottomNew = parseInt($(dis).find('.imapper-content').eq(tab_clicked[pinId] - 1).css('bottom')) + cHeight[pinId]; $(dis).find('.imapper-content').eq(tab_clicked[pinId] - 1).animate({ height: 0, bottom: bottomNew}, {duration: 400}); $(dis).find('.imapper-content').eq(newClick - 1).find('.imapper-content-inner').fadeIn('fast'); $(dis).find('.imapper-content').eq(newClick - 1).animate({ height: cHeight[pinId]}, {duration: 400}); for (var i = newClick; i < tab_clicked[pinId]; i++) { var bottomNew2 = parseInt($(dis).find('.imapper-content-tab').eq(i - 1).css('bottom')) + cHeight[pinId]; $(dis).find('.imapper-content-tab').eq(i - 1).stop(true,true).animate({ bottom: bottomNew2}, {duration: 400}); if (i != newClick) $(dis).find('.imapper-content').eq(i - 1).css('bottom', parseInt($(dis).find('.imapper-content').eq(i - 1).css('bottom')) + cHeight[pinId]); } } } else if (position == 'top' || position == 'bottom') { if (newClick > tab_clicked[pinId]) { $(dis).find('.imapper-content').eq(newClick - 1).stop(true,true); $(dis).find('.imapper-content').eq(tab_clicked[pinId] - 1).find('.imapper-content-inner').fadeOut('fast'); $(dis).find('.imapper-content').eq(tab_clicked[pinId] - 1).animate({ width: 0}, {duration: 400}); for (var i = tab_clicked[pinId]; i < newClick; i++) { var rightNew = parseInt($(dis).find('.imapper-content-tab').eq(i - 1).css('right')) - cWidth[pinId]; $(dis).find('.imapper-content-tab').eq(i - 1).animate({ right: rightNew}, {duration: 400}); if (i != tab_clicked[pinId]) $(dis).find('.imapper-content').eq(i - 1).css('right', parseInt($(dis).find('.imapper-content').eq(i - 1).css('right')) - cWidth[pinId]); } $(dis).find('.imapper-content').eq(newClick - 1).find('.imapper-content-inner').fadeIn('fast'); var rightNew2 = parseInt($(dis).find('.imapper-content').eq(newClick - 1).css('right')) - cWidth[pinId]; $(dis).find('.imapper-content').eq(newClick - 1).animate({ width: cWidth[pinId], right: rightNew2}, {duration: 400}); } else { $(dis).find('.imapper-content').eq(newClick - 1).stop(true,true); $(dis).find('.imapper-content').eq(tab_clicked[pinId] - 1).find('.imapper-content-inner').fadeOut('fast'); var rightNew = parseInt($(dis).find('.imapper-content').eq(tab_clicked[pinId] - 1).css('right')) + cWidth[pinId]; $(dis).find('.imapper-content').eq(tab_clicked[pinId] - 1).animate({ width: 0, right: rightNew}, {duration: 400}); $(dis).find('.imapper-content').eq(newClick - 1).find('.imapper-content-inner').fadeIn('fast'); $(dis).find('.imapper-content').eq(newClick - 1).animate({ width: cWidth[pinId]}, {duration: 400}); for (var i = newClick; i < tab_clicked[pinId]; i++) { var rightNew2 = parseInt($(dis).find('.imapper-content-tab').eq(i - 1).stop(true,true).css('right')) + cWidth[pinId]; $(dis).find('.imapper-content-tab').eq(i - 1).animate({ right: rightNew2}, {duration: 400}); if (i != newClick) $(dis).find('.imapper-content').eq(i - 1).css('right', parseInt($(dis).find('.imapper-content').eq(i - 1).css('right')) + cWidth[pinId]); } } } $(dis).find('.imapper-content').eq(newClick - 1).find('.imapper-content-text').mCustomScrollbar('update'); tab_clicked[pinId] = newClick; } else { // Must have another check for window width as argument above not always true - newClick != tab_clicked[pinId] if ( $(window).width() <= 600 ) { /* * Responsive behavior for less than 600px window width * Class imapper-responsive-tab-pin-tabs will be added to pins with multiple tabs */ var responsiveCurrentTabClicked = $(this); var responsiveShowTabId = $('#' + responsiveCurrentTabClicked.parent().attr('id').replace('-tab', '')); var responsiveParentPinWrapper = responsiveCurrentTabClicked.parents('.imapper-pin-wrapper'); var responsiveContentWrapper = responsiveParentPinWrapper.find('.imapper-content-wrapper'); // Add background so we can swap tabs responsiveContentWrapper.css('background', responsiveContentWrapper.data('back-color')); setTimeout(function(){ // Hide all tabls contents and remove tab active class responsiveParentPinWrapper.find('.imapper-content-tab').removeClass('active'); responsiveParentPinWrapper.find('.imapper-content').not(responsiveShowTabId).fadeOut(200); // Show clicked tab content and add active class responsiveCurrentTabClicked.parent('.imapper-content-tab').addClass('active'); responsiveShowTabId.addClass('active').fadeIn(200, function(){ // remove fake background responsiveContentWrapper.css('background', ''); }); }, 150); } } }); $('.imapper' + id + '-pin-wrapper').each(function(){ var itemClickAction; if (settings.itemOpenStyle == 'click') itemClickAction = 'content'; else itemClickAction = 'none'; if (settings.advancedPinOptions == true && settings.pinClickAction!='') itemClickAction = settings.pinClickAction; if ($(this).attr('data-imapper-click-action') !== undefined) itemClickAction = $(this).attr('data-imapper-click-action'); var itemHoverAction; if (settings.itemOpenStyle == 'hover') itemHoverAction = 'content'; else itemHoverAction = 'none'; if (settings.advancedPinOptions == true && settings.pinHoverAction!='') itemHoverAction = settings.pinHoverAction; if ($(this).attr('data-imapper-hover-action') !== undefined) itemHoverAction = $(this).attr('data-imapper-hover-action'); if (itemHoverAction == 'content')//handles pin hover event { $(this).children('.imapper' + id + '-pin').mouseover( function() {//hover in function for pins $(this).siblings('.imapper-content-wrapper').stop(true,true); $(this).siblings('.imapper-content-wrapper').find('.imapper-content').stop(true,true); if (settings.mapOverlay) addOverlay($(this),id); var properties2 = {}; var contentOpenPosition = $(this).closest('.imapper-pin-wrapper').data('open-position'); if (settings.slideAnimation == true) { var rightPos = 0; var bottomPos = 0; switch (contentOpenPosition) { case 'top': case 'bottom': bottomPos = parseInt($(this).siblings('.imapper-content-wrapper').css('bottom')); var duration = {duration: 400, queue: true, always: function() { $(this).css({'bottom':bottomPos+'px'}); } }; break; case 'left': case 'right': rightPos = parseInt($(this).siblings('.imapper-content-wrapper').css('right')); var duration = {duration: 400, queue: true, always: function() { $(this).css({'right':rightPos+"px"}); }}; break; default: var duration = {duration: 400, queue: true}; } } else { var duration = {duration: 400, queue: true}; } var cpWidth = ($(window).width() <= 600 && designStyle == 'responsive') ? ($(this).closest('.imagemapper-wrapper').width() / parseFloat($(this).parent().css('transform').substring($(this).parent().css('transform').indexOf('(') + 1, $(this).parent().css('transform').indexOf(',')))) : width; if ($(window).width() > 600 && designStyle == 'responsive' || designStyle == 'fluid') { $(this).css('z-index', '12'); $(this).siblings('.imapper-value-tab-number').css('z-index', '12'); $(this).siblings('.imapper-content-wrapper').css('z-index', '11'); } else { $(this).siblings('.imapper-content-wrapper').css('z-index', '13'); } $(this).parent().css('z-index', '100'); if ($(this).siblings('.imapper-content-wrapper').css('visibility') == 'hidden') $(this).siblings('.imapper-content-wrapper').css('visibility', 'visible'); if ($(this).hasClass(pinType2)) { if ($(this).parent().data('open-position') == 'right') properties2 = {width: cpWidth, marginLeft: 0}; else properties2 = {width: cpWidth, marginLeft: 0}; $(this).siblings('.imapper-content-wrapper').find('.imapper-content').animate(properties2, duration); } if (settings.slideAnimation) { var contentWrapperWidth = $(this).siblings('.imapper-content-wrapper').width(); var contentWrapperHeight = $(this).siblings('.imapper-content-wrapper').height(); switch (contentOpenPosition) { case 'top': $(this).siblings('.imapper-content-wrapper').css('bottom',(bottomPos+contentWrapperHeight/5)+"px"); $(this).siblings('.imapper-content-wrapper').animate({opacity: 1, bottom: bottomPos+"px"}, duration); break; case 'bottom': $(this).siblings('.imapper-content-wrapper').css('bottom',(bottomPos-contentWrapperHeight/5)+"px"); $(this).siblings('.imapper-content-wrapper').animate({opacity: 1, bottom: bottomPos+"px"}, duration); break; case 'left': $(this).siblings('.imapper-content-wrapper').css('right',(rightPos+contentWrapperWidth/5)+"px"); $(this).siblings('.imapper-content-wrapper').animate({opacity: 1, right: rightPos+"px"}, duration); break; case 'right': $(this).siblings('.imapper-content-wrapper').css('right',(rightPos-contentWrapperWidth/5)+"px"); $(this).siblings('.imapper-content-wrapper').animate({opacity: 1, right: rightPos+"px"}, duration); break; break; default: $(this).siblings('.imapper-content-wrapper').animate({opacity: 1}, duration); } } else { $(this).siblings('.imapper-content-wrapper').animate({opacity: 1}, duration); } }); /** * Dragan bugs 3 25 2015 remove window ehn is hover over * content widnow */ $(this).find(".imapper-content-wrapper").mouseleave( function() {//hover out function for pins var pinId = getPinId($(this).siblings('.imapper' + id + '-pin'));//id of the pin var properties = {opacity: 0}; var properties2 = {}; var duration = {}; /*if(window.console){ console.log("Remove from content",pinId); }*/ var cpWidth = ($(window).width() <= 600 && designStyle == 'responsive') ? ($(this).parent().width() / parseFloat($(this).css('transform').substring($(this).css('transform').indexOf('(') + 1, $(this).css('transform').indexOf(',')))) : width; if ($(this).siblings('.imapper' + id + '-pin').hasClass(pinType2)) { if ($(this).data('open-position') == 'right') properties2 = {width: 0}; else properties2 = {width: 0, marginLeft: cpWidth}; duration = {duration: 300, queue: true}; } else { duration = { duration: 300, queue: true, complete: function() { $(this).find('.imapper-content').parent().css('visibility', 'hidden'); } }; } $(this).each(function(){ //if (!($(this).is(':hover'))) { $(this).animate(properties, duration); /*}else { /*$(this).find('.imapper-content-wrapper').mouseleave(function(){ $(this).siblings('img').trigger('mouseleave'); }); }*/ }); if ($(this).siblings('.imapper' + id + '-pin').hasClass(pinType2)) $(this).find('.imapper-content').delay(200).animate(properties2, { duration: 300, queue: false, complete: function() { $(this).parent().css('visibility', 'hidden'); } }); $(this).siblings('.imapper' + id + '-pin').css('z-index', '10'); $(this).children('.imapper-value-tab-number').css('z-index', '10'); $(this).children('.imapper-content-wrapper').css('z-index', '9'); $(this).css('z-index', ''); imapperClearMap($('#imapper'+id+'-map-image'), id, clicked); }); /** * End dragan changes */ $(this).mouseleave( function() {//hover out function for pins var pinId = getPinId($(this).children('.imapper' + id + '-pin'));//id of the pin var properties = {opacity: 0}; var properties2 = {}; var duration = {}; var cpWidth = ($(window).width() <= 600 && designStyle == 'responsive') ? ($(this).parent().width() / parseFloat($(this).css('transform').substring($(this).css('transform').indexOf('(') + 1, $(this).css('transform').indexOf(',')))) : width; if ($(this).children('.imapper' + id + '-pin').hasClass(pinType2)) { if ($(this).data('open-position') == 'right') properties2 = {width: 0}; else properties2 = {width: 0, marginLeft: cpWidth}; duration = {duration: 300, queue: true}; } else { duration = { duration: 300, queue: true, complete: function() { $(this).find('.imapper-content').parent().css('visibility', 'hidden'); } }; } $(this).find('.imapper-content-wrapper').delay(200).each(function(){ if (!($(this).is(':hover'))) { $(this).animate(properties, duration); }else { /*$(this).find('.imapper-content-wrapper').mouseleave(function(){ $(this).siblings('img').trigger('mouseleave'); });*/ } }); if ($(this).children('.imapper' + id + '-pin').hasClass(pinType2)) $(this).find('.imapper-content').delay(200).animate(properties2, { duration: 300, queue: false, complete: function() { $(this).parent().css('visibility', 'hidden'); } }); $(this).children('.imapper' + id + '-pin').css('z-index', '10'); $(this).children('.imapper-value-tab-number').css('z-index', '10'); $(this).children('.imapper-content-wrapper').css('z-index', '9'); $(this).css('z-index', ''); imapperClearMap($('#imapper'+id+'-map-image'), id, clicked); }); } if (itemClickAction!='none')//handles pin click { if (itemClickAction=='content') { /* =========================================================*/ /* Bind click on each pin to open content /* ==========================================================*/ $(this).children('.imapper' + id + '-pin').click(function () { imapperClearMap($('#imapper' + id + '-map-image'), id, []); if ($(this).closest('.imagemapper-wrapper').siblings('.imapper-content-below').hasClass('imapper-cb-tabs-version')) $(this).closest('.imagemapper-wrapper').siblings('.imapper-content-below').addClass('imapper-content-below-invisible').html(''); else $(this).closest('.imagemapper-wrapper').siblings('.imapper-content-below').slideUp().addClass('imapper-content-below-invisible').html(''); var pinId = getPinId($(this)); if (clicked[pinId] === undefined) {//fail safe when there are multiple mappers on the page clicked[pinId] = 0; } var cpWidth = ($(window).width() <= 600 && designStyle == 'responsive') ? ($(this).parent().parent().width() / parseFloat($(this).parent().css('transform').substring($(this).parent().css('transform').indexOf('(') + 1, $(this).parent().css('transform').indexOf(',')))) : width; /* * Clicked pin will be 0 if no other pin content open, else will be 1. * If 1 than first will close all opened contents and than set clicked[pinId] to open clicked pin content */ if (clicked[pinId] == 0) { var contentOpenPosition = $(this).closest('.imapper-pin-wrapper').data('open-position'); var properties = {opacity: 1}; var properties2 = {}; var duration = {duration: 300, queue: true}; var rightPos = 0; var bottomPos = 0; if (settings.slideAnimation == true) { switch (contentOpenPosition) { case 'top': case 'bottom': bottomPos = parseInt($(this).siblings('.imapper-content-wrapper').css('bottom')); var duration = {duration: 300, queue: true, always: function () { $(this).css({'bottom': bottomPos + 'px'}); }}; break; case 'left': case 'right': rightPos = parseInt($(this).siblings('.imapper-content-wrapper').css('right')); var duration = {duration: 300, queue: true, always: function () { $(this).css({'right': rightPos + "px"}); }}; break; } } var clickedPinId = getPinId($(this)); $('.imapper' + id + '-pin').each(function () { var pid = getPinId($(this)); if (clicked[pid] == 1) { $(this).trigger('click'); } }); if (settings.mapOverlay) addOverlay($(this), id); if ($(window).width() > 600 && designStyle == 'responsive' || designStyle == 'fluid') { $(this).css('z-index', '12'); $(this).siblings('.imapper-value-tab-number').css('z-index', '12'); $(this).siblings('.imapper-content-wrapper').css('z-index', '11'); } else { $(this).siblings('.imapper-content-wrapper').css('z-index', '13'); } $(this).parent().css('z-index', '100'); if ($(this).hasClass(pinType2)) { if ($(this).parent().data('open-position') == 'right') { properties2 = {width: cpWidth}; } else properties2 = {width: cpWidth, marginLeft: 0}; } if (settings.slideAnimation) { var contentWrapperWidth = $(this).siblings('.imapper-content-wrapper').width(); var contentWrapperHeight = $(this).siblings('.imapper-content-wrapper').height(); switch (contentOpenPosition) { case 'top': $(this).siblings('.imapper-content-wrapper').css('bottom', (bottomPos + contentWrapperHeight / 5) + "px"); $(this).stop(true).siblings('.imapper-content-wrapper').css('visibility', 'visible').animate({opacity: 1, bottom: bottomPos + "px"}, duration); break; case 'bottom': $(this).siblings('.imapper-content-wrapper').css('bottom', (bottomPos - contentWrapperHeight / 5) + "px"); $(this).stop(true).siblings('.imapper-content-wrapper').css('visibility', 'visible').animate({opacity: 1, bottom: bottomPos + "px"}, duration); break; case 'left': $(this).siblings('.imapper-content-wrapper').css('right', (rightPos + contentWrapperWidth / 5) + "px"); $(this).stop(true).siblings('.imapper-content-wrapper').css('visibility', 'visible').animate({opacity: 1, right: rightPos + "px"}, duration); break; case 'right': $(this).siblings('.imapper-content-wrapper').css('right', (rightPos - contentWrapperWidth / 5) + "px"); $(this).stop(true).siblings('.imapper-content-wrapper').css('visibility', 'visible').animate({opacity: 1, right: rightPos + "px"}, duration); break; break; default: $(this).stop(true).siblings('.imapper-content-wrapper').animate({opacity: 1}, duration); } } else { $(this).stop(true).siblings('.imapper-content-wrapper').css('visibility', 'visible').animate(properties, duration); } if ($(this).hasClass(pinType2)) $(this).siblings('.imapper-content-wrapper').find('.imapper-content').animate(properties2, { duration: 400, queue: false }); $(this).siblings('.imapper-content-wrapper').find('.imapper-content-text').mCustomScrollbar('update'); clicked[pinId] = 1; $(this).addClass('imapper-no-overlay'); } else { var properties = {opacity: 0}; var properties2 = {}; var duration = {}; if ($(this).hasClass(pinType2)) { if ($(this).parent().data('open-position') == 'right') { properties2 = {width: 0}; } else properties2 = {width: 0, marginLeft: cpWidth}; duration = {duration: 400, queue: false}; } else duration = { duration: 400, queue: false, complete: function () { $(this).css('visibility', 'hidden'); } }; $(this).siblings('.imapper-content-wrapper').animate(properties, duration); if ($(this).hasClass(pinType2)) $(this).siblings('.imapper-content-wrapper').find('.imapper-content').animate(properties2, { duration: 400, queue: false, complete: function () { $(this).parent().css('visibility', 'hidden'); } }); $(this).css('z-index', '10'); $(this).siblings('.imapper-value-tab-number').css('z-index', '10'); $(this).siblings('.imapper-content-wrapper').css('z-index', '9'); $(this).parent().css('z-index', ''); clicked[pinId] = 0; $('.imapper' + id + '-pin').removeClass('imapper-no-overlay'); } }); $('#imapper' + id + '-map-image').click(function() {//closes the opened items imapperClearMap($(this), id, clicked); }); } else if (itemClickAction == 'link' ) { $(this).children('.imapper' + id + '-pin').click( function() { var link = $(this).parent().data('imapper-link'); window.open(link); }); } else if (itemClickAction == 'lightboxImage' || itemClickAction == 'lightboxIframe' ) { $(this).children('.imapper' + id + '-pin').click( function() { if ($(this).closest('.imagemapper-wrapper').siblings('.imapper-content-below').hasClass('imapper-cb-tabs-version')) $(this).closest('.imagemapper-wrapper').siblings('.imapper-content-below').addClass('imapper-content-below-invisible'); else $(this).closest('.imagemapper-wrapper').siblings('.imapper-content-below').slideUp().addClass('imapper-content-below-invisible'); setTimeout(function(){ $('.imapper'+id+'-content-below').html(''); },400); $(this).siblings('.imapper-pretty-photo').trigger('click'); }); } else if (itemClickAction == 'contentBelow') { $(this).children('.imapper' + id + '-pin').click( function() { imapperClearMap($('#imapper'+id+'-map-image'), id, clicked); var pinId = getPinId($(this)); var isPinOpen = $('.content-below-pin-'+pinId).length; if ( isPinOpen == 0 ) { if (settings.mapOverlay) addOverlay($(this),id); var contentHeader = $(this).siblings('.imapper-content-wrapper').find('.imapper-content-header').html(); var contentText = $(this).siblings('.imapper-content-wrapper').find('.imapper-content-text').html(); $(this).closest('.imagemapper-wrapper').siblings('.imapper'+id+'-content-below').css('display','block').addClass('imapper-content-below-invisible'); if ($(this).siblings('.imapper-content-wrapper').find('.imapper-content').length>1) { var cbContent = '
'; var cbTabs = '
'; var i = 1; $(this).siblings('.imapper-content-wrapper').find('.imapper-content').each(function(){ var cbHeader = $(this).find('.imapper-content-header').html(); var cbText = $(this).find('.imapper-content-text').html(); cbTabs +=''; cbContent += '
'+cbHeader+'
'+cbText+'
'; i++; }); cbContent+='
'; cbTabs+='
'; $('.imapper'+id+'-content-below').html(cbTabs+cbContent).addClass('imapper-cb-tabs-version'); $('.imapper'+id+'-content-below').removeClass('imapper-content-below-invisible'); } else { $('.imapper'+id+'-content-below').html('
'+contentHeader+'
'+contentText+'
'); $('.imapper'+id+'-content-below').removeClass('imapper-content-below-invisible').css('display','none').slideDown(); } $('.imapper'+id+'-content-below .content-below-text *').removeClass(); } else { $('#imapper' + id + '-map-image').trigger('click'); } }); $('#imapper' + id + '-map-image').click(function() { if ($(this).closest('.imagemapper-wrapper').siblings('.imapper-content-below').hasClass('imapper-cb-tabs-version')) $(this).closest('.imagemapper-wrapper').siblings('.imapper-content-below').addClass('imapper-content-below-invisible'); else $(this).closest('.imagemapper-wrapper').siblings('.imapper-content-below').slideUp().addClass('imapper-content-below-invisible'); setTimeout(function(){ $('.imapper'+id+'-content-below ').html(''); },400); imapperClearMap($(this), id, clicked); }); $(document).on('click','.imapper-cb-tab-wrapper',function(e){ e.preventDefault(); var contentId = $(this).children('.imapper-cb-tab').attr('href'); $(this).addClass('imapper-cb-tab-active').siblings().removeClass('imapper-cb-tab-active'); $('#'+contentId).addClass('imapper-cb-content-active').siblings().removeClass('imapper-cb-content-active'); }); } } /* * Pin content displaye and bind click on close button. * For < 600px screens */ $(document).on('click','.imapper-close-button', function() { var el = $('#imapper'+id+'-map-image'); if (settings.itemOpenStyle == 'hover' || $(this).closest('.imapper-pin-wrapper').data('imapper-hover-action') == 'content' ) { $(this).closest('.imapper-pin-wrapper').trigger('mouseleave'); /* * When responsive < 600px, if content action is hover and clicked on close button pin content does not close, only if clicked outside. * Below line make sure it also get's closed */ $(this).closest('.imapper-pin-wrapper').find('.imapper-content-wrapper').trigger('mouseleave'); } else { $(this).parent().siblings('.imapper' + id + '-pin').trigger('click'); } imapperClearMap(el, id, clicked); }); initAreaPinsBlur(settings,id); }); $(document).on('click','.imapper-category-item-wrapper', function(e) {//button for closing the pin content which is visible in responsive mode e.preventDefault(); var catName = $(this).children('.imapper-category-button').attr('href'); $(this).addClass('imapper-category-active').siblings().removeClass('imapper-category-active'); if (catName!='All') { var pinWrappers = $(this).closest('.imapper-categories-wrapper').nextAll('.imagemapper-wrapper').first().children('.imapper-pin-wrapper'); pinWrappers.addClass('imapper-category-hidden').filter('[data-category=\''+catName+'\']').removeClass('imapper-category-hidden').addClass('imapper-category-visible'); var catPins = pinWrappers.filter(':not(.imapper-category-hidden) > .imapper' + id + '-pin'); var pinVisibleFlag = false; var pinId; catPins.each(function(){ pinId = getPinId($(this)); if (clicked[pinId] == 1) pinVisibleFlag = true; if ($('.content-below-pin-' + pinId).length > 0) pinVisibleFlag = true; }); if (!pinVisibleFlag) { imapperClearMap($('#imapper'+id+'-map-image'), id, clicked); $('#imapper' + id + '-map-image').trigger('click'); } } else { $('.imapper' + id + '-pin-wrapper').removeClass('imapper-category-hidden').addClass('imapper-category-visible'); } }); $('.imapper' + id + '-pin').each(function() { var pinId = getPinId($(this)); contentWrapperOld[pinId] = [ $(this).parent().find('.imapper-content-wrapper').css('top'), $(this).parent().find('.imapper-content-wrapper').css('left'), $(this).parent().find('.imapper-content-wrapper').css('width'), $(this).parent().find('.imapper-content-wrapper').css('height'), $(this).parent().find('.imapper-content-wrapper').css('z-index') ]; contentOld[pinId] = [ $(this).parent().find('.imapper-content').not('.imapper-content-additional').css('top'), $(this).parent().find('.imapper-content').not('.imapper-content-additional').css('left'), $(this).parent().find('.imapper-content').not('.imapper-content-additional').css('width'), $(this).parent().find('.imapper-content').not('.imapper-content-additional').css('height'), $(this).parent().find('.imapper-content').not('.imapper-content-additional').css('bottom'), $(this).parent().find('.imapper-content').not('.imapper-content-additional').css('right')]; contentHeaderOld[pinId] = [ $(this).parent().find('.imapper-content-header').css('width'), $(this).parent().find('.imapper-content-header').css('font-size'), $(this).parent().find('.imapper-content-header').css('padding-left') ]; contentTextOld[pinId] = [ $(this).parent().find('.imapper-content-text').css('width'), $(this).parent().find('.imapper-content-text').css('height'), $(this).parent().find('.imapper-content-text').css('margin-top'), $(this).parent().find('.imapper-content-text').css('font-size'), $(this).parent().find('.imapper-content-text').css('padding-left') ]; $(this).parent().find('.imapper-content-tab').each(function(index) { contentTabOld[pinId][index] = [ $(this).css('width'), $(this).css('height'), $(this).css('bottom'), $(this).css('right') ]; }); $(this).parent().find('.imapper-content-additional').each(function(index) { contentAdditionalOld[pinId][index] = [ $(this).css('width'), $(this).css('height'), $(this).css('bottom'), $(this).css('right') ]; }); }); /* =========================================================*/ /* Responsive pin alocation and add close button for pin content */ /* ==========================================================*/ if ($(window).width() <= 600 && designStyle == 'responsive') { var mapHeight = $('.imapper'+id+'-map-image').height(); $('.imapper' + id + '-pin').each(function() { /* * Override above set width for content that show on click * Set width as iMapper wrapper for the content. This way we avoid content to make white space on responsive view * Also set fix for this change in css wordpress_image_mapper/css/frontend/image_mapper.css * * Override height also to prevent it going outside iMapper container */ map_original_width = $(this).parents('.imagemapper-wrapper').width(); map_original_height = $(this).parents('.imagemapper-wrapper').height(); var positionLeft = (-parseInt($(this).parent().css('left')) / parseFloat($(this).parent().css('transform').substring($(this).parent().css('transform').indexOf('(') + 1, $(this).parent().css('transform').indexOf(',')))) + 'px'; var parentTopPercent = parseInt($(this).parent().data('top'))/100; var mapHeight = parseInt($(this).closest('.imagemapper-wrapper').height()); var part1 = mapHeight*parentTopPercent / parseFloat($(this).parent().css('transform').substring($(this).parent().css('transform').indexOf('(') + 1, $(this).parent().css('transform').indexOf(','))); var iconHeight = parseInt($(this).height()) * parseFloat($(this).parent().css('transform').substring($(this).parent().css('transform').indexOf('(') + 1, $(this).parent().css('transform').indexOf(','))); positionTop = - (part1) + "px"; if(my_debug_12){ console.log('REsponsive',{w:width,h:height}); } var pinId = getPinId($(this)); var position = $(this).parent().data('open-position'); var radius = parseInt($(this).parent().find('.imapper-content').css('border-bottom-right-radius')) / 2 + 1; $(this).parent().find('.imapper-content-wrapper').css({'top': positionTop, 'left': positionLeft, 'width': map_original_width + 'px', 'height': map_original_height + 'px', 'z-index': '15'}); $(this).parent().find('.imapper-content').not('.imapper-content-additional').css({'top': '0px', 'left': '0px', 'width': map_original_width + 'px', 'height': map_original_height + 'px'}); if ($(this).hasClass(pinType2)) { if (clicked[pinId] == 0) { $(this).parent().find('.imapper-content').css('width', '0px'); if (position == 'left') $(this).parent().find('.imapper-content').css('margin-left', map_original_width + 'px'); } else { $(this).parent().find('.imapper-content').css('width', map_original_width + 'px'); if (position == 'left') $(this).parent().find('.imapper-content').css('margin-left', '0px'); } } else if ($(this).hasClass(pinType1)) { if (position == 'left' || position == 'right') { $(this).parent().find('.imapper-content').not('.imapper-content-additional').css({'height': cHeight[pinId], 'top': '', 'bottom': '0px'}); var bottom = cHeight[pinId]; var bottom_content = cHeight[pinId] + (75 - radius); $(this).parent().find('.imapper-content-tab').each(function() { $(this).css({'width': map_original_width, 'height': '75px', 'bottom': bottom}); $(this).find('a').css({'height': '75px', 'font-size': '24px'}); bottom += 75 - radius; }); $(this).parent().find('.imapper-content-additional').each(function() { $(this).css({'width': map_original_width, 'bottom': bottom_content}); bottom_content += 75 - radius; }); } else if (position == 'top' || position == 'bottom') { $(this).parent().find('.imapper-content').not('.imapper-content-additional').css({'width': cWidth[pinId], 'left': '', 'right': '0px'}); var right = cWidth[pinId]; var right_content = cWidth[pinId] + (75 - radius); $(this).parent().find('.imapper-content-tab').each(function() { $(this).css({'height': map_original_height, 'width': '75px', 'right': right}); $(this).find('a').css({'width': '75px', 'font-size': '24px', 'height': map_original_height}); right += 75 - radius; }); $(this).parent().find('.imapper-content-additional').each(function() { $(this).css({'height': map_original_height, 'right': right_content}); right_content += 75 - radius; }); } } $(this).parent().find('.imapper-content-header').css({'width': map_original_width - 30 + 'px', 'font-size': parseInt($(this).parent().find('.imapper-content-header').css('font-size')) * 2 + 'px', 'padding-left': '20px'}); var textHeight = $(this).parent().find('.imapper-content').height() - $(this).parent().find('.imapper-content-header').height() - 50; $(this).parent().find('.imapper-content-text').css({'width': map_original_width - 30 + 'px', 'height': textHeight, 'margin-top': '70px', 'font-size': parseInt($(this).parent().find('.imapper-content-text').css('font-size')) * 2 + 'px', 'padding-left': '20px'}); $(this).parent().find('.imapper-content-text').each(function() { $(this).mCustomScrollbar('update'); }); $(this).parent().find('.imapper-arrow').css('display', 'none'); $(this).parent().find('.imapper-arrow-border').css('display', 'none'); $(this).parent().find('.imapper-triangle-border').css('display', 'none'); // Set plugin root dir url for close button pluginUrl = image_mapper_frontend_js_data.plugin_root_url; $(this).parent().find('.imapper-content-wrapper').append(''); $(this).parent().find('.imapper-close-button').css({'position': 'absolute', 'right': '30px', 'top': '25px', 'z-index': '100', 'cursor': 'pointer'}); }); } $(window).resize(function() { $("div[id*='imagemapper']").each( function() { var id = $(this).attr('id').substring(11, $(this).attr('id').indexOf('-')); var wrapperWidth = $('#imapper' + id + '-map-image').css('width'); $('.imapper'+id+'-content-below').css('maxWidth',wrapperWidth); /** * New code for responosive */ /** * New code for respononsive */ var parent_width = ($(this).parent().width() < map_original_width) ? $(this).parent().width() : map_original_width; multiplierArea = parent_width / map_original_width; if (settings.pinScalingCoefficient!=0) { multiplier = settings.pinScalingCoefficient; } else { multiplier = multiplierArea; } /** * New code for responsivness */ if((my_use_new_code_responsive)&&(settings.pinScalingCoefficient==0)){ if ($(window).width() > 600 && settings.itemDesignStyle == 'responsive'){ var my_w_12=$('#imapper' + id + '-map-image').data('w'); var my_h_12=$('#imapper' + id + '-map-image').data('h'); //console.log('My w',{w:my_w_12,h:my_h_12}); //var map_original_size = imapperGetOriginalSize('#imapper' + id + '-map-image'); if((my_w_12!=''&&my_h_12!='')){ map_original_width=parseInt(my_w_12); map_original_height=parseInt(my_h_12); } multiplierArea=1; multiplier=1; parent_width = ($(this).parent().width() < map_original_width) ? $(this).parent().width() : map_original_width; }else if(($(window).width()<600)&&settings.itemDesignStyle == 'responsive'){ var my_w_12=$('#imapper' + id + '-map-image').data('w'); var my_h_12=$('#imapper' + id + '-map-image').data('h'); //console.log('My w',{w:my_w_12,h:my_h_12}); var map_original_size = imapperGetOriginalSize('#imapper' + id + '-map-image'); if((my_w_12!=''&&my_h_12!='')){ map_original_width=parseInt(my_w_12); map_original_height=parseInt(my_h_12); } var my_c_12=map_original_width/map_original_height; if(my_debug_12){ console.log('Coeff',{my_c_12:my_c_12}); } //map_original_width=600; if(my_c_12>1){ //var my_c12_12=map_height/map_original_width; //if(map_original_width>600){ var c=map_original_width/600; map_original_width=600; map_original_height=map_original_width/my_c_12; //} }else { //if(map_original_width>600){ var c=map_original_width/600; map_original_width=600; map_original_height=map_original_width/my_c_12; //map_original_height=map_original_width*c; //else map_original_height=map_original_width/c; //} } multiplierArea = parent_width / map_original_width; multiplier=multiplierArea; } } /** * New code for multiplier */ $(this).css('width', parent_width); if (multiplier <= 1)//ratio of available width and original width of the image if the image is wider than the container { $(this).find('.imapper-pin-wrapper > img').parent().css('transform', 'scale(' + multiplier + ')'); var windowWidth = parseInt($(window).width()); if (settings.pinScalingCoefficient!=0 && windowWidth<600 && settings.itemDesignStyle == 'responsive' ) { $(this).find('.imapper-pin-wrapper > img ~ .imapper-content-wrapper').css({'transform': 'scale(' + (multiplierArea/multiplier) + ')','transform-origin':'0% 0%', '-webkit-transform-origin':'0% 0%', '-moz-transform-origin':'0% 0%', '-ms-transform-origin':'0% 0%', '-o-transform-origin':'0% 0%'}); } } var windowWidth = parseInt($(window).width()); if (windowWidth>600 || settings.itemDesignStyle == 'fluid') { $(this).find('.imapper-pin-wrapper > img ~ .imapper-content-wrapper').each(function(){ var openPosition = $(this).parent().data('open-position'); switch(openPosition) { case 'top': $(this).css({'transform': 'scale(' + (multiplier) + ')','transform-origin':'center bottom','-webkit-transform-origin':'center bottom','-moz-transform-origin':'center bottom','-ms-transform-origin':'center bottom','-o-transform-origin':'center bottom'}); break; case 'bottom': $(this).css({'transform': 'scale(' + (multiplier) + ')','transform-origin':'center top','-webkit-transform-origin':'center top','-moz-transform-origin':'center top','-ms-transform-origin':'center top','-o-transform-origin':'center top'}); break; case 'left': $(this).css({'transform': 'scale(' + (multiplier) + ')','transform-origin':'right center','-webkit-transform-origin':'right center','-moz-transform-origin':'right center','-ms-transform-origin':'right center','-o-transform-origin':'right center'}); break; case 'right': $(this).css({'transform': 'scale(' + (multiplier) + ')','transform-origin':'left center','-webkit-transform-origin':'left center','-moz-transform-origin':'left center','-ms-transform-origin':'left center','-o-transform-origin':'left center'}); break; } }); } $(this).find('.imapper-pin-wrapper > .imapper-area-pin').parent().css('transform', 'scale(' + multiplierArea + ')'); $(this).find('.imapper-content-text').each(function() { $(this).mCustomScrollbar('update'); }); if ($(window).width() <= 600 && designStyle == 'responsive') { $('.imapper' + id + '-pin').each(function() { var pinId = getPinId($(this)); var positionLeft = (-parseInt($(this).parent().css('left')) / parseFloat($(this).parent().css('transform').substring($(this).parent().css('transform').indexOf('(') + 1, $(this).parent().css('transform').indexOf(',')))) + 'px'; var positionTop = (-parseInt($(this).parent().css('top')) / parseFloat($(this).parent().css('transform').substring($(this).parent().css('transform').indexOf('(') + 1, $(this).parent().css('transform').indexOf(',')))) + 'px'; var parentTopPercent = parseInt($(this).parent().data('top'))/100; var mapHeight = parseInt($(this).closest('.imagemapper-wrapper').height()); var part1 = mapHeight*parentTopPercent / parseFloat($(this).parent().css('transform').substring($(this).parent().css('transform').indexOf('(') + 1, $(this).parent().css('transform').indexOf(','))); var iconHeight = parseInt($(this).height()) * parseFloat($(this).parent().css('transform').substring($(this).parent().css('transform').indexOf('(') + 1, $(this).parent().css('transform').indexOf(','))); positionTop = - (part1) + "px"; var position = $(this).parent().data('open-position'); var radius = parseInt($(this).parent().find('.imapper-content').not('.imapper-content-additional').css('border-bottom-right-radius')) / 2 + 1; var tNumber = parseInt($(this).siblings('.imapper-value-tab-number').html()); cHeight[pinId] = map_original_height - ((tNumber > 1) ? tNumber : 0) * (75 - radius); cWidth[pinId] = map_original_width - ((tNumber > 1) ? tNumber : 0) * (75 - radius); $(this).parent().find('.imapper-content-wrapper').css({'top': positionTop, 'left': positionLeft, 'width': map_original_width + 'px', 'height': map_original_height + 'px', 'z-index': '15'}); $(this).parent().find('.imapper-content').not('.imapper-content-additional').css({'top': '0px', 'left': '0px', 'width': map_original_width + 'px', 'height': map_original_height + 'px'}); if ($(this).hasClass(pinType2)) { if (clicked[pinId] == 0) { $(this).parent().find('.imapper-content').css('width', '0px'); if (position == 'left') $(this).parent().find('.imapper-content').css('margin-left', map_original_width + 'px'); } else { $(this).parent().find('.imapper-content').css('width', map_original_width + 'px'); if (position == 'left') $(this).parent().find('.imapper-content').css('margin-left', '0px'); } } else if ($(this).hasClass(pinType1)) { tab_clicked[pinId] = 1; if (position == 'left' || position == 'right') { $(this).parent().find('.imapper-content').not('.imapper-content-additional').css({'height': cHeight[pinId], 'top': '', 'bottom': '0px'}); var bottom = cHeight[pinId]; var bottom_content = cHeight[pinId] + (75 - radius); $(this).parent().find('.imapper-content-tab').each(function() { $(this).css({'width': map_original_width, 'height': '75px', 'bottom': bottom}); $(this).find('a').css({'height': '75px', 'font-size': '24px'}); bottom += 75 - radius; }); $(this).parent().find('.imapper-content-additional').each(function() { $(this).css({'width': map_original_width, 'height': '0px', 'bottom': bottom_content}); bottom_content += 75 - radius; }); } else if (position == 'top' || position == 'bottom') { $(this).parent().find('.imapper-content').not('.imapper-content-additional').css({'width': cWidth[pinId], 'left': '', 'right': '0px'}); var right = cWidth[pinId]; var right_content = cWidth[pinId] + (75 - radius); $(this).parent().find('.imapper-content-tab').each(function() { $(this).css({'height': map_original_height, 'width': '75px', 'right': right}); $(this).find('a').css({'width': '75px', 'font-size': '24px', 'height': map_original_height}); right += 75 - radius; }); $(this).parent().find('.imapper-content-additional').each(function() { $(this).css({'height': map_original_height, 'width': '0px', 'right': right_content}); right_content += 75 - radius; }); } } $(this).parent().find('.imapper-content-header').css({'width': map_original_width - 30 + 'px', 'font-size': parseInt(contentHeaderOld[pinId][1]) * 2 + 'px', 'padding-left': '20px'}); var textHeight = $(this).parent().find('.imapper-content').height() - $(this).parent().find('.imapper-content-header').height() - 50; $(this).parent().find('.imapper-content-text').css({'width': map_original_width - 30 + 'px', 'height': textHeight, 'margin-top': '70px', 'font-size': parseInt(contentTextOld[pinId][3]) * 2 + 'px', 'padding-left': '20px'}); $(this).parent().find('.imapper-content-text').each(function() { $(this).mCustomScrollbar('update'); }); $(this).parent().find('.imapper-arrow').css('display', 'none'); $(this).parent().find('.imapper-arrow-border').css('display', 'none'); $(this).parent().find('.imapper-triangle-border').css('display', 'none'); var pos = $(this).attr('src').indexOf('/images/'); pluginUrl = $(this).attr('src').substring(0, pos); $(this).parent().find('.imapper-content-wrapper').append(''); $(this).parent().find('.imapper-close-button').css({'position': 'absolute', 'right': '30px', 'top': '25px', 'z-index': '100', 'transform': 'scale('+multiplierArea+')', 'cursor': 'pointer', 'box-shadow': 'none'}); }); } else if ($(window).width() > 600 && designStyle == 'responsive') { $('.imapper' + id + '-pin').each(function() { var pinId = getPinId($(this)); var position = $(this).parent().data('open-position'); cHeight[pinId] = height; cWidth[pinId] = width; $(this).parent().find('.imapper-content-wrapper').css({'top': contentWrapperOld[pinId][0], 'left': contentWrapperOld[pinId][1], 'width': contentWrapperOld[pinId][2], 'height': contentWrapperOld[pinId][3], 'z-index': contentWrapperOld[pinId][4]}); $(this).parent().find('.imapper-content').not('.imapper-content-additional').css({'top': contentOld[pinId][0], 'left': contentOld[pinId][1], 'width': contentOld[pinId][2], 'height': contentOld[pinId][3]}); if ($(this).hasClass(pinType2) && position == 'left') { if (clicked[pinId] == 0) $(this).parent().find('.imapper-content').not('.imapper-content-additional').css('margin-left', width); else $(this).parent().find('.imapper-content').not('.imapper-content-additional').css('margin-left', '0px'); } else if ($(this).hasClass(pinType1)) { tab_clicked[pinId] = 1; if (position == 'left' || position == 'right') { $(this).parent().find('.imapper-content').not('.imapper-content-additional').css('top', ''); $(this).parent().find('.imapper-content-tab').each(function(index) { $(this).css({'width': contentTabOld[pinId][index][0], 'height': contentTabOld[pinId][index][1], 'bottom': contentTabOld[pinId][index][2]}); $(this).find('a').css({'height': '', 'font-size': '12px'}); }); $(this).parent().find('.imapper-content-additional').each(function(index) { $(this).css({'width': contentAdditionalOld[pinId][index][0], 'height': contentAdditionalOld[pinId][index][1], 'bottom': contentAdditionalOld[pinId][index][2]}); }); } else if (position == 'top' || position == 'bottom') { $(this).parent().find('.imapper-content').not('.imapper-content-additional').css({'top': '', 'left': ''}); $(this).parent().find('.imapper-content-tab').each(function(index) { $(this).css({'width': contentTabOld[pinId][index][0], 'height': contentTabOld[pinId][index][1], 'right': contentTabOld[pinId][index][3]}); $(this).find('a').css({'width': '', 'font-size': '12px', 'height': contentTabOld[pinId][index][1]}); }); $(this).parent().find('.imapper-content-additional').each(function(index) { $(this).css({'width': contentAdditionalOld[pinId][index][0], 'height': contentAdditionalOld[pinId][index][1], 'right': contentAdditionalOld[pinId][index][3]}); }); } } $(this).parent().find('.imapper-content-header').css({'width': contentHeaderOld[pinId][0], 'font-size': contentHeaderOld[pinId][1], 'padding-left': contentHeaderOld[pinId][2]}); $(this).parent().find('.imapper-content-text').css({'width': contentTextOld[pinId][0], 'height': contentTextOld[pinId][1], 'margin-top': contentTextOld[pinId][2], 'font-size': contentTextOld[pinId][3], 'padding-left': contentTextOld[pinId][4]}); $(this).parent().find('.imapper-content-text').each(function() { $(this).mCustomScrollbar('update'); }); $(this).parent().find('.imapper-arrow').css('display', 'block'); $(this).parent().find('.imapper-arrow-border').css('display', 'block'); $(this).parent().find('.imapper-triangle-border').css('display', 'block'); $(this).parent().find('.imapper-close-button').remove(); }); } }); }); }); } function getPinId(obj) { return obj.attr('id').substring(obj.attr('id').indexOf('-pin') + 4); } //function parameter is src of the image, return value is an array with the original image width and height - doesn't work in IE8 or lower function imapperGetOriginalSize(image) { var img = new Image(); img.src = $(image).attr('src'); var original_size = new Array(); original_size[0] = img.naturalWidth; original_size[1] = img.naturalHeight; return original_size; } function addOverlay(obj, id) { obj.addClass('imapper-no-overlay').closest('.imapper-pin-wrapper').siblings('#imapper'+id+'-map-image').wrap('
'); } function imapperClearMap(obj, id, clicked) { $('.imapper' + id + '-pin').each(function() { var pid = getPinId($(this)); if (clicked[pid] == 1) $(this).trigger('click'); }); if ($('#imapper'+id+'-map-image').parent().hasClass('imapper-overlay-wrapper')) { $('#imapper'+id+'-map-image').unwrap().siblings('.imapper-pin-wrapper').children().removeClass('imapper-no-overlay'); } } function initAreaPinsBlur(settings, id){ $('.imapper' + id + '-pin-wrapper').each(function(){ if (settings.mapOverlay && $(this).children('.imapper-area-pin').length>0) { var img = $('#imapper'+id+'-map-image'); var original_size = imapperGetOriginalSize(img); var imgWidth = parseFloat(img.css('width')); var imgHeight = parseFloat(img.css('height')); var pinWrapperLeft = parseFloat($(this).position().left)*original_size[0]/imgWidth; var pinWrapperTop = Math.abs(parseFloat($(this).position().top))*original_size[1]/imgHeight; var areaPin = $(this).children('.imapper-area-pin'); var areaPinLeft = parseFloat($(this).children('.imapper-area-pin').css('width'))/2; var areaPinTop = Math.abs(parseFloat($(this).children('.imapper-area-pin').css('height'))); var areaPinBorderLeft = parseFloat(areaPin.css('border-left-width')); var areaPinBorderTop = parseFloat(areaPin.css('border-top-width')); $(this).children('.imapper-area-pin').find('img').css({'left':-pinWrapperLeft+areaPinLeft-areaPinBorderLeft+'px','top':-pinWrapperTop+areaPinTop-areaPinBorderTop+'px'}); } }); } function imapperInit(id, settings)//creates the html code for mapper instance { var itemOpenStyle = settings.itemOpenStyle, itemDesignStyle = settings.itemDesignStyle, pinClickAction = settings.pinClickAction, showAllCategory = settings.showAllCategory, allCategoryText = settings.allCategoryText, lightboxGallery = settings.lightboxGallery, itemClickAction = ''; cats = ''; var tempCat; $('#imapper' + id + '-map-image').css('max-width', '100%'); if (settings.blurEffect) $('#imapper' + id + '-map-image').addClass('imapper-blur-effect'); if (settings.mapOverlay) { $('#imagemapper' + id + '-wrapper .imapper-area-pin').append($('#imapper' + id + '-map-image').clone()); $('#imagemapper' + id + '-wrapper .imapper-area-pin img').removeAttr('id').removeClass(); } $('#imagemapper' + id + '-wrapper').after('
'); var wrapperWidth = $('#imapper' + id + '-map-image').css('width'); $('.imapper'+id+'-content-below').css({'maxWidth':wrapperWidth,'display':'none'}); $('#imagemapper' + id + '-wrapper').children('.imapper-pin-wrapper').each(function() {//for each pin wrapper var pinImg = $(this).children('.imapper' + id + '-pin');//pin image var pinId = getPinId(pinImg);//pin id var pinSrc = pinImg.attr('src');//pin image src var dataLeft = ($(this).attr('data-left') !== undefined) ? $(this).attr('data-left') : '50%'; var dataTop = ($(this).attr('data-top') !== undefined) ? $(this).attr('data-top') : '50%'; var dataOpenPosition = ($(this).attr('data-open-position') !== undefined) ? $(this).attr('data-open-position') : 'left'; var dataPinColor = ($(this).attr('data-pin-color') !== undefined) ? $(this).attr('data-pin-color') : '#0000ff'; var dataPinIcon = ($(this).attr('data-pin-icon') !== undefined) ? $(this).attr('data-pin-icon') : 'icon-plane'; var dataImapperLink = ($(this).attr('data-imapper-link') !== undefined) ? $(this).attr('data-imapper-link') : ''; var itemClickAction = ($(this).attr('data-imapper-click-action') !== undefined) ? $(this).attr('data-imapper-click-action') : pinClickAction; var prettyPhotoWidth = ($(this).attr('data-imapper-lightbox-width') !== undefined) ? $(this).attr('data-imapper-lightbox-width') : '100%'; var prettyPhotoHeight = ($(this).attr('data-imapper-lightbox-height') !== undefined) ? $(this).attr('data-imapper-lightbox-height') : '100%'; var imapperContentWrapper = $(this).children('.imapper-content-wrapper'); var dataTextColor = (imapperContentWrapper.attr('data-text-color') !== undefined) ? imapperContentWrapper.attr('data-text-color') : '#dbdbdb'; var dataBackColor = (imapperContentWrapper.attr('data-back-color') !== undefined) ? imapperContentWrapper.attr('data-back-color') : '#1fb896'; var dataBorderColor = (imapperContentWrapper.attr('data-border-color') !== undefined) ? imapperContentWrapper.attr('data-border-color') : '#1fb896'; var dataBorderRadius = (imapperContentWrapper.attr('data-border-radius') !== undefined) ? imapperContentWrapper.attr('data-border-radius') : '10px'; var dataWidth = (imapperContentWrapper.attr('data-width') !== undefined) ? imapperContentWrapper.attr('data-width') : '200px'; var dataHeight = (imapperContentWrapper.attr('data-height') !== undefined) ? imapperContentWrapper.attr('data-height') : '150px'; var dataFont = (imapperContentWrapper.attr('data-font') !== undefined) ? imapperContentWrapper.attr('data-font') : 'Arial'; var imapperContent = imapperContentWrapper.children('.imapper-content'); var dataTabNumber = imapperContent.length; if (pinImg.hasClass('iMapper-pin-1')) { pinImg.addClass('imapper-pin-type-1'); pinImg.css({'color':dataPinColor}); } // Why are the image elements added to the imapper-pretty-photo links? Because pretty photo plugin adds some weird characters above the image, when it can't find the alt attribute if (itemClickAction == 'lightboxImage') { if (lightboxGallery) pinImg.after(''); else pinImg.after(''); } else if (itemClickAction == 'lightboxIframe') { if (lightboxGallery) pinImg.after(' '); else pinImg.after(' '); } $(this).css({'position': 'absolute', 'left': dataLeft, 'top': dataTop});//setting position relative to the map if (dataTabNumber > 1) $(this).append('
' + dataTabNumber + '
'); imapperContentWrapper.css('color', dataTextColor); imapperContentWrapper.append('
'); tempCat = $(this).data('category') if (cats.indexOf(tempCat)==-1 && tempCat !== undefined) { cats += ''; } imapperContent.css({'background-color': dataBackColor, 'border-color': dataBorderColor, 'border-radius': dataBorderRadius, 'width': dataWidth, 'height': dataHeight, 'font-family': '"' + dataFont + '"'}); if (pinSrc!==undefined) { if ( pinSrc.indexOf('images/icons/2') >= 0) { imapperContent.css('height', '75px');//set fixed content height for the sliding pin if (dataOpenPosition != 'left' && dataOpenPosition != 'right') { dataOpenPosition = left; $(this).attr('data-open-position', 'left'); } imapperContentWrapper.append('
'); } else imapperContentWrapper.append('
'); } if (dataTabNumber > 1) for (var i = 1; i <= dataTabNumber; i++) { if (i == 1) { var after = '#imapper' + id + '-pin' + pinId + '-content'; var contentTab = '-content'; } else { var after = '#imapper' + id + '-pin' + pinId + '-content-' + i; var contentTab = '-content-' + i; } // $('').insertAfter(after);//append the element which contains the number of the pin } if (pinSrc!==undefined) { if (pinSrc.indexOf('images/icons/3/') >= 0)//add shadow for an element with the shadow $(this).prepend('') if (pinSrc.indexOf('images/icons/5/') >= 0)//add icon and color for the pin with fawesome icons { $(this).children('.imapper' + id + '-pin').after(''); $(this).children('.imapper' + id + '-pin').after('
'); } } }); if (cats.length!=0 && settings.categories==true) { if (showAllCategory) cats = '' + cats; cats = '
' +cats; $('#imagemapper' + id + '-wrapper').before(cats); } $('.imapper-pretty-photo').prettyPhoto({social_tools:false, theme:'pp_default'}); } })(jQuery); // source --> https://herbifeet.com/wp-content/plugins/wordpress_image_mapper/js/frontend/jquery.mousewheel.min.js?ver=4.9.24 /*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net) * Licensed under the MIT License (LICENSE.txt). * * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. * Thanks to: Seamus Leahy for adding deltaX and deltaY * * Version: 3.0.6 * * Requires: 1.2.2+ */ (function(a){function d(b){var c=b||window.event,d=[].slice.call(arguments,1),e=0,f=!0,g=0,h=0;return b=a.event.fix(c),b.type="mousewheel",c.wheelDelta&&(e=c.wheelDelta/120),c.detail&&(e=-c.detail/3),h=e,c.axis!==undefined&&c.axis===c.HORIZONTAL_AXIS&&(h=0,g=-1*e),c.wheelDeltaY!==undefined&&(h=c.wheelDeltaY/120),c.wheelDeltaX!==undefined&&(g=-1*c.wheelDeltaX/120),d.unshift(b,e,g,h),(a.event.dispatch||a.event.handle).apply(this,d)}var b=["DOMMouseScroll","mousewheel"];if(a.event.fixHooks)for(var c=b.length;c;)a.event.fixHooks[b[--c]]=a.event.mouseHooks;a.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=b.length;a;)this.addEventListener(b[--a],d,!1);else this.onmousewheel=d},teardown:function(){if(this.removeEventListener)for(var a=b.length;a;)this.removeEventListener(b[--a],d,!1);else this.onmousewheel=null}},a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery); // source --> https://herbifeet.com/wp-content/plugins/wordpress_image_mapper/js/frontend/jquery.mCustomScrollbar.min.js?ver=4.9.24 /* == malihu jquery custom scrollbar plugin == Version: 3.0.2 Plugin URI: http://manos.malihu.gr/jquery-custom-content-scroller Author: malihu Author URI: http://manos.malihu.gr License: MIT License (MIT) */ /* Copyright 2010 Manos Malihutsakis (email: manos@malihu.gr) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* The code below is fairly long, fully commented and should be normally used in development. For production, use either the minified jquery.mCustomScrollbar.min.js script or the production-ready jquery.mCustomScrollbar.concat.min.js which contains the plugin and dependencies (minified). */ ;(function($,window,document,undefined){ /* ---------------------------------------- PLUGIN NAMESPACE, PREFIX, DEFAULT SELECTOR(S) ---------------------------------------- */ var pluginNS="mCustomScrollbar", pluginPfx="mCS", defaultSelector=".mCustomScrollbar", /* ---------------------------------------- DEFAULT OPTIONS ---------------------------------------- */ defaults={ /* set element/content width programmatically values: boolean, pixels, percentage */ setWidth:false, /* set element/content height programmatically values: boolean, pixels, percentage */ setHeight:false, /* set the initial css top property of content values: string (e.g. "-100px", "10%" etc.) */ setTop:0, /* set the initial css left property of content values: string (e.g. "-100px", "10%" etc.) */ setLeft:0, /* scrollbar axis (vertical and/or horizontal scrollbars) values (string): "y", "x", "yx" */ axis:"y", /* position of scrollbar relative to content values (string): "inside", "outside" ("outside" requires elements with position:relative) */ scrollbarPosition:"inside", /* scrolling inertia values: integer (milliseconds) */ scrollInertia:950, /* auto-adjust scrollbar dragger length values: boolean */ autoDraggerLength:true, /* auto-hide scrollbar when idle values: boolean */ autoHideScrollbar:false, /* auto-expands scrollbar on mouse-over and dragging */ autoExpandScrollbar:false, /* always show scrollbar, even when there's nothing to scroll values: integer (0=disable, 1=always show dragger rail, 2=always show dragger rail, dragger and buttons), boolean */ alwaysShowScrollbar:0, /* scrolling always snaps to a multiple of this number in pixels values: integer */ snapAmount:null, /* when snapping, snap with this number in pixels as an offset values: integer */ snapOffset:0, /* mouse-wheel scrolling */ mouseWheel:{ /* enable mouse-wheel scrolling values: boolean */ enable:true, /* scrolling amount in pixels values: "auto", integer */ scrollAmount:"auto", /* mouse-wheel scrolling axis the default scrolling direction when both vertical and horizontal scrollbars are present values (string): "y", "x" */ axis:"y", /* prevent the default behaviour which automatically scrolls the parent element(s) when end of scrolling is reached values: boolean */ preventDefault:false, /* the reported mouse-wheel delta value. The number of lines (translated to pixels) one wheel notch scrolls. values: "auto", integer "auto" uses the default OS/browser value */ deltaFactor:"auto", /* normalize mouse-wheel delta to -1 or 1 (disables mouse-wheel acceleration) values: boolean */ normalizeDelta:false, /* invert mouse-wheel scrolling direction values: boolean */ invert:false, /* the tags that disable mouse-wheel when cursor is over them */ disableOver:["select","option","keygen","datalist","textarea"] }, /* scrollbar buttons */ scrollButtons:{ /* enable scrollbar buttons values: boolean */ enable:false, /* scrollbar buttons scrolling type values (string): "stepless", "stepped" */ scrollType:"stepless", /* scrolling amount in pixels values: "auto", integer */ scrollAmount:"auto" }, /* keyboard scrolling */ keyboard:{ /* enable scrolling via keyboard values: boolean */ enable:true, /* keyboard scrolling type values (string): "stepless", "stepped" */ scrollType:"stepless", /* scrolling amount in pixels values: "auto", integer */ scrollAmount:"auto" }, /* enable content touch-swipe scrolling values: boolean, integer, string (number) integer values define the axis-specific minimum amount required for scrolling momentum */ contentTouchScroll:25, /* advanced option parameters */ advanced:{ /* auto-expand content horizontally (for "x" or "yx" axis) values: boolean */ autoExpandHorizontalScroll:false, /* auto-scroll to elements with focus */ autoScrollOnFocus:"input,textarea,select,button,datalist,keygen,a[tabindex],area,object,[contenteditable='true']", /* auto-update scrollbars on content, element or viewport resize should be true for fluid layouts/elements, adding/removing content dynamically, hiding/showing elements, content with images etc. values: boolean */ updateOnContentResize:true, /* auto-update scrollbars each time each image inside the element is fully loaded values: boolean */ updateOnImageLoad:true, /* auto-update scrollbars based on the amount and size changes of specific selectors useful when you need to update the scrollbar(s) automatically, each time a type of element is added, removed or changes its size values: boolean, string (e.g. "ul li" will auto-update scrollbars each time list-items inside the element are changed) a value of true (boolean) will auto-update scrollbars each time any element is changed */ updateOnSelectorChange:false }, /* scrollbar theme values: string ready-to-use themes: "light", "dark", "light-2", "dark-2", "light-3", "dark-3", "light-thick", "dark-thick", "light-thin", "dark-thin", "rounded", "rounded-dark", "rounded-dots", "rounded-dots-dark", "3d", "3d-dark", "3d-thick", "3d-thick-dark", "minimal", "minimal-dark", "inset", "inset-dark", "inset-2", "inset-2-dark", "inset-3", "inset-3-dark" */ theme:"light", /* user defined callback functions */ callbacks:{ /* function to call when a scroll event starts values (function): function(){} */ onScrollStart:false, /* function to call when a scroll event is complete values (function): function(){} */ onScroll:false, /* function to call when a scroll event is complete and content is scrolled all the way to the end (bottom/right) values (function): function(){} */ onTotalScroll:false, /* function to call when a scroll event is complete and content is scrolled back to the beginning (top/left) values (function): function(){} */ onTotalScrollBack:false, /* function to call when a scroll event is running values (function): function(){} */ whileScrolling:false, /* onTotalScroll offset value values: integer (pixels) */ onTotalScrollOffset:0, /* onTotalScrollBack offset value values: integer (pixels) */ onTotalScrollBackOffset:0, /* callback offsets will trigger even if content is already scrolled to the end or beginning values: boolean */ alwaysTriggerOffsets:true }, /* add scrollbar(s) on all elements matching the current selector, now and in the future values: boolean, string string values: "on" (enable), "once" (disable after first invocation), "off" (disable) */ live:false, /* the matching set of elements (instead of the current selector) to add scrollbar(s), now and in the future values: string (selector) */ liveSelector:null }, /* ---------------------------------------- VARS, CONSTANTS ---------------------------------------- */ totalInstances=0, /* plugin instances amount */ liveTimers={}, /* live option timers */ /* live option timers removal */ removeLiveTimers=function(selector){ if(liveTimers[selector]){ clearTimeout(liveTimers[selector]); functions._delete.call(null,liveTimers[selector]); } }, oldIE=(window.attachEvent && !window.addEventListener) ? 1 : 0, /* detect IE < 9 */ touchActive=false, /* global touch state (for touch and pointer events) */ /* ---------------------------------------- METHODS ---------------------------------------- */ methods={ /* plugin initialization method creates the scrollbar(s), plugin data object and options ---------------------------------------- */ init:function(options){ var options=$.extend(true,{},defaults,options), selector=functions._selector.call(this); /* validate selector */ /* if live option is enabled, monitor for elements matching the current selector and apply scrollbar(s) when found (now and in the future) */ if(options.live){ var liveSelector=options.liveSelector || this.selector || defaultSelector, /* live selector(s) */ $liveSelector=$(liveSelector); /* live selector(s) as jquery object */ if(options.live==="off"){ /* disable live if requested usage: $(selector).mCustomScrollbar({live:"off"}); */ removeLiveTimers(liveSelector); return; } liveTimers[liveSelector]=setTimeout(function(){ /* call mCustomScrollbar fn on live selector(s) every half-second */ $liveSelector.mCustomScrollbar(options); if(options.live==="once" && $liveSelector.length){ /* disable live after first invocation */ removeLiveTimers(liveSelector); } },500); }else{ removeLiveTimers(liveSelector); } /* options backward compatibility (for versions < 3.0.0) and normalization */ options.setWidth=(options.set_width) ? options.set_width : options.setWidth; options.setHeight=(options.set_height) ? options.set_height : options.setHeight; options.axis=(options.horizontalScroll) ? "x" : functions._findAxis.call(null,options.axis); options.scrollInertia=options.scrollInertia<17 ? 17 : options.scrollInertia; if(typeof options.mouseWheel!=="object" && options.mouseWheel==true){ /* old school mouseWheel option (non-object) */ options.mouseWheel={enable:true,scrollAmount:"auto",axis:"y",preventDefault:false,deltaFactor:"auto",normalizeDelta:false,invert:false} } options.mouseWheel.scrollAmount=!options.mouseWheelPixels ? options.mouseWheel.scrollAmount : options.mouseWheelPixels; options.mouseWheel.normalizeDelta=!options.advanced.normalizeMouseWheelDelta ? options.mouseWheel.normalizeDelta : options.advanced.normalizeMouseWheelDelta; options.scrollButtons.scrollType=functions._findScrollButtonsType.call(null,options.scrollButtons.scrollType); functions._theme.call(null,options); /* theme-specific options */ /* plugin constructor */ return $(selector).each(function(){ var $this=$(this); if(!$this.data(pluginPfx)){ /* prevent multiple instantiations */ /* store options and create objects in jquery data */ $this.data(pluginPfx,{ idx:++totalInstances, /* instance index */ opt:options, /* options */ scrollRatio:{y:null,x:null}, /* scrollbar to content ratio */ overflowed:null, /* overflowed axis */ bindEvents:false, /* object to check if events are bound */ tweenRunning:false, /* object to check if tween is running */ sequential:{}, /* sequential scrolling object */ langDir:$this.css("direction"), /* detect/store direction (ltr or rtl) */ cbOffsets:null, /* object to check whether callback offsets always trigger */ /* object to check how scrolling events where last triggered "internal" (default - triggered by this script), "external" (triggered by other scripts, e.g. via scrollTo method) usage: object.data("mCS").trigger */ trigger:null }); /* HTML data attributes */ var o=$this.data(pluginPfx).opt, htmlDataAxis=$this.data("mcs-axis"),htmlDataSbPos=$this.data("mcs-scrollbar-position"),htmlDataTheme=$this.data("mcs-theme"); if(htmlDataAxis){o.axis=htmlDataAxis;} /* usage example: data-mcs-axis="y" */ if(htmlDataSbPos){o.scrollbarPosition=htmlDataSbPos;} /* usage example: data-mcs-scrollbar-position="outside" */ if(htmlDataTheme){ /* usage example: data-mcs-theme="minimal" */ o.theme=htmlDataTheme; functions._theme.call(null,o); /* theme-specific options */ } functions._pluginMarkup.call(this); /* add plugin markup */ methods.update.call(null,$this); /* call the update method */ } }); }, /* ---------------------------------------- */ /* plugin update method updates content and scrollbar(s) values, events and status ---------------------------------------- usage: $(selector).mCustomScrollbar("update"); */ update:function(el){ var selector=el || functions._selector.call(this); /* validate selector */ return $(selector).each(function(){ var $this=$(this); if($this.data(pluginPfx)){ /* check if plugin has initialized */ var d=$this.data(pluginPfx),o=d.opt, mCSB_container=$("#mCSB_"+d.idx+"_container"), mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")]; if(!mCSB_container.length){return;} if(d.tweenRunning){functions._stop.call(null,$this);} /* stop any running tweens while updating */ /* if element was disabled or destroyed, remove class(es) */ if($this.hasClass("mCS_disabled")){$this.removeClass("mCS_disabled");} if($this.hasClass("mCS_destroyed")){$this.removeClass("mCS_destroyed");} functions._maxHeight.call(this); /* detect/set css max-height value */ functions._expandContentHorizontally.call(this); /* expand content horizontally */ if(o.axis!=="y" && !o.advanced.autoExpandHorizontalScroll){ mCSB_container.css("width",functions._contentWidth(mCSB_container.children())); } d.overflowed=functions._overflowed.call(this); /* determine if scrolling is required */ functions._scrollbarVisibility.call(this); /* show/hide scrollbar(s) */ /* auto-adjust scrollbar dragger length analogous to content */ if(o.autoDraggerLength){functions._setDraggerLength.call(this);} functions._scrollRatio.call(this); /* calculate and store scrollbar to content ratio */ functions._bindEvents.call(this); /* bind scrollbar events */ /* reset scrolling position and/or events */ var to=[Math.abs(mCSB_container[0].offsetTop),Math.abs(mCSB_container[0].offsetLeft)]; if(o.axis!=="x"){ /* y/yx axis */ if(!d.overflowed[0]){ /* y scrolling is not required */ functions._resetContentPosition.call(this); /* reset content position */ if(o.axis==="y"){ functions._unbindEvents.call(this); }else if(o.axis==="yx" && d.overflowed[1]){ functions._scrollTo.call(this,$this,to[1].toString(),{dir:"x",dur:0,overwrite:"none"}); } }else if(mCSB_dragger[0].height()>mCSB_dragger[0].parent().height()){ functions._resetContentPosition.call(this); /* reset content position */ }else{ /* y scrolling is required */ functions._scrollTo.call(this,$this,to[0].toString(),{dir:"y",dur:0,overwrite:"none"}); } } if(o.axis!=="y"){ /* x/yx axis */ if(!d.overflowed[1]){ /* x scrolling is not required */ functions._resetContentPosition.call(this); /* reset content position */ if(o.axis==="x"){ functions._unbindEvents.call(this); }else if(o.axis==="yx" && d.overflowed[0]){ functions._scrollTo.call(this,$this,to[0].toString(),{dir:"y",dur:0,overwrite:"none"}); } }else if(mCSB_dragger[1].width()>mCSB_dragger[1].parent().width()){ functions._resetContentPosition.call(this); /* reset content position */ }else{ /* x scrolling is required */ functions._scrollTo.call(this,$this,to[1].toString(),{dir:"x",dur:0,overwrite:"none"}); } } functions._autoUpdate.call(this); /* initialize automatic updating (for dynamic content, fluid layouts etc.) */ } }); }, /* ---------------------------------------- */ /* plugin scrollTo method triggers a scrolling event to a specific value ---------------------------------------- usage: $(selector).mCustomScrollbar("scrollTo",value,options); */ scrollTo:function(val,options){ /* prevent silly things like $(selector).mCustomScrollbar("scrollTo",undefined); */ if(typeof val=="undefined" || val==null){return;} var selector=functions._selector.call(this); /* validate selector */ return $(selector).each(function(){ var $this=$(this); if($this.data(pluginPfx)){ /* check if plugin has initialized */ var d=$this.data(pluginPfx),o=d.opt, /* method default options */ methodDefaults={ trigger:"external", /* method is by default triggered externally (e.g. from other scripts) */ scrollInertia:o.scrollInertia, /* scrolling inertia (animation duration) */ scrollEasing:"mcsEaseInOut", /* animation easing */ moveDragger:false, /* move dragger instead of content */ callbacks:true, /* enable/disable callbacks */ onStart:true, onUpdate:true, onComplete:true }, methodOptions=$.extend(true,{},methodDefaults,options), to=functions._arr.call(this,val),dur=methodOptions.scrollInertia < 17 ? 17 : methodOptions.scrollInertia; /* translate yx values to actual scroll-to positions */ to[0]=functions._to.call(this,to[0],"y"); to[1]=functions._to.call(this,to[1],"x"); /* check if scroll-to value moves the dragger instead of content. Only pixel values apply on dragger (e.g. 100, "100px", "-=100" etc.) */ if(methodOptions.moveDragger){ to[0]*=d.scrollRatio.y; to[1]*=d.scrollRatio.x; } methodOptions.dur=dur; setTimeout(function(){ /* do the scrolling */ if(to[0]!==null && typeof to[0]!=="undefined" && o.axis!=="x" && d.overflowed[0]){ /* scroll y */ methodOptions.dir="y"; methodOptions.overwrite="all"; functions._scrollTo.call(this,$this,to[0].toString(),methodOptions); } if(to[1]!==null && typeof to[1]!=="undefined" && o.axis!=="y" && d.overflowed[1]){ /* scroll x */ methodOptions.dir="x"; methodOptions.overwrite="none"; functions._scrollTo.call(this,$this,to[1].toString(),methodOptions); } },60); } }); }, /* ---------------------------------------- */ /* plugin stop method stops scrolling animation ---------------------------------------- usage: $(selector).mCustomScrollbar("stop"); */ stop:function(){ var selector=functions._selector.call(this); /* validate selector */ return $(selector).each(function(){ var $this=$(this); if($this.data(pluginPfx)){ /* check if plugin has initialized */ functions._stop.call(null,$this); } }); }, /* ---------------------------------------- */ /* plugin disable method temporarily disables the scrollbar(s) ---------------------------------------- usage: $(selector).mCustomScrollbar("disable",reset); reset (boolean): resets content position to 0 */ disable:function(r){ var selector=functions._selector.call(this); /* validate selector */ return $(selector).each(function(){ var $this=$(this); if($this.data(pluginPfx)){ /* check if plugin has initialized */ var d=$this.data(pluginPfx),o=d.opt; functions._autoUpdate.call(this,"remove"); /* remove automatic updating */ functions._unbindEvents.call(this); /* unbind events */ if(r){functions._resetContentPosition.call(this);} /* reset content position */ functions._scrollbarVisibility.call(this,true); /* show/hide scrollbar(s) */ $this.addClass("mCS_disabled"); /* add disable class */ } }); }, /* ---------------------------------------- */ /* plugin destroy method completely removes the scrollbar(s) and returns the element to its original state ---------------------------------------- usage: $(selector).mCustomScrollbar("destroy"); */ destroy:function(){ var selector=functions._selector.call(this); /* validate selector */ return $(selector).each(function(){ var $this=$(this); if($this.data(pluginPfx)){ /* check if plugin has initialized */ var d=$this.data(pluginPfx),o=d.opt, mCustomScrollBox=$("#mCSB_"+d.idx), mCSB_container=$("#mCSB_"+d.idx+"_container"), scrollbar=$(".mCSB_"+d.idx+"_scrollbar"); if(o.live){removeLiveTimers(selector);} /* remove live timer */ functions._autoUpdate.call(this,"remove"); /* remove automatic updating */ functions._unbindEvents.call(this); /* unbind events */ functions._resetContentPosition.call(this); /* reset content position */ $this.removeData(pluginPfx); /* remove plugin data object */ functions._delete.call(null,this.mcs); /* delete callbacks object */ /* remove plugin markup */ scrollbar.remove(); /* remove scrollbar(s) first (those can be either inside or outside plugin's inner wrapper) */ mCustomScrollBox.replaceWith(mCSB_container.contents()); /* replace plugin's inner wrapper with the original content */ /* remove plugin classes from the element and add destroy class */ $this.removeClass(pluginNS+" _"+pluginPfx+"_"+d.idx+" mCS-autoHide mCS-dir-rtl mCS_no_scrollbar mCS_disabled").addClass("mCS_destroyed"); } }); } /* ---------------------------------------- */ }, /* ---------------------------------------- FUNCTIONS ---------------------------------------- */ functions={ /* validates selector (if selector is invalid or undefined uses the default one) */ _selector:function(){ return (typeof $(this)!=="object" || $(this).length<1) ? defaultSelector : this; }, /* -------------------- */ /* changes options according to theme */ _theme:function(obj){ var fixedSizeScrollbarThemes=["rounded","rounded-dark","rounded-dots","rounded-dots-dark"], nonExpandedScrollbarThemes=["rounded-dots","rounded-dots-dark","3d","3d-dark","3d-thick","3d-thick-dark","inset","inset-dark","inset-2","inset-2-dark","inset-3","inset-3-dark"], disabledScrollButtonsThemes=["minimal","minimal-dark"], enabledAutoHideScrollbarThemes=["minimal","minimal-dark"], scrollbarPositionOutsideThemes=["minimal","minimal-dark"]; obj.autoDraggerLength=$.inArray(obj.theme,fixedSizeScrollbarThemes) > -1 ? false : obj.autoDraggerLength; obj.autoExpandScrollbar=$.inArray(obj.theme,nonExpandedScrollbarThemes) > -1 ? false : obj.autoExpandScrollbar; obj.scrollButtons.enable=$.inArray(obj.theme,disabledScrollButtonsThemes) > -1 ? false : obj.scrollButtons.enable; obj.autoHideScrollbar=$.inArray(obj.theme,enabledAutoHideScrollbarThemes) > -1 ? true : obj.autoHideScrollbar; obj.scrollbarPosition=$.inArray(obj.theme,scrollbarPositionOutsideThemes) > -1 ? "outside" : obj.scrollbarPosition; }, /* -------------------- */ /* normalizes axis option to valid values: "y", "x", "yx" */ _findAxis:function(val){ return (val==="yx" || val==="xy" || val==="auto") ? "yx" : (val==="x" || val==="horizontal") ? "x" : "y"; }, /* -------------------- */ /* normalizes scrollButtons.scrollType option to valid values: "stepless", "stepped" */ _findScrollButtonsType:function(val){ return (val==="stepped" || val==="pixels" || val==="step" || val==="click") ? "stepped" : "stepless"; }, /* -------------------- */ /* generates plugin markup */ _pluginMarkup:function(){ var $this=$(this),d=$this.data(pluginPfx),o=d.opt, expandClass=o.autoExpandScrollbar ? " mCSB_scrollTools_onDrag_expand" : "", scrollbar=["
","
"], wrapperClass=o.axis==="yx" ? "mCSB_vertical_horizontal" : o.axis==="x" ? "mCSB_horizontal" : "mCSB_vertical", scrollbars=o.axis==="yx" ? scrollbar[0]+scrollbar[1] : o.axis==="x" ? scrollbar[1] : scrollbar[0], contentWrapper=o.axis==="yx" ? "
" : "", autoHideClass=o.autoHideScrollbar ? " mCS-autoHide" : "", scrollbarDirClass=(o.axis!=="x" && d.langDir==="rtl") ? " mCS-dir-rtl" : ""; if(o.setWidth){$this.css("width",o.setWidth);} /* set element width */ if(o.setHeight){$this.css("height",o.setHeight);} /* set element height */ o.setLeft=(o.axis!=="y" && d.langDir==="rtl") ? "989999px" : o.setLeft; /* adjust left position for rtl direction */ $this.addClass(pluginNS+" _"+pluginPfx+"_"+d.idx+autoHideClass+scrollbarDirClass).wrapInner("
"); var mCustomScrollBox=$("#mCSB_"+d.idx), mCSB_container=$("#mCSB_"+d.idx+"_container"); if(o.axis!=="y" && !o.advanced.autoExpandHorizontalScroll){ mCSB_container.css("width",functions._contentWidth(mCSB_container.children())); } if(o.scrollbarPosition==="outside"){ if($this.css("position")==="static"){ /* requires elements with non-static position */ $this.css("position","relative"); } $this.css("overflow","visible"); mCustomScrollBox.addClass("mCSB_outside").after(scrollbars); }else{ mCustomScrollBox.addClass("mCSB_inside").append(scrollbars); mCSB_container.wrap(contentWrapper); } functions._scrollButtons.call(this); /* add scrollbar buttons */ /* minimum dragger length */ var mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")]; mCSB_dragger[0].css("min-height",mCSB_dragger[0].height()); mCSB_dragger[1].css("min-width",mCSB_dragger[1].width()); }, /* -------------------- */ /* calculates content width */ _contentWidth:function(el){ return Math.max.apply(Math,el.map(function(){return $(this).outerWidth(true);}).get()); }, /* -------------------- */ /* expands content horizontally */ _expandContentHorizontally:function(){ var $this=$(this),d=$this.data(pluginPfx),o=d.opt, mCSB_container=$("#mCSB_"+d.idx+"_container"); if(o.advanced.autoExpandHorizontalScroll && o.axis!=="y"){ /* wrap content with an infinite width div and set its position to absolute and width to auto. Setting width to auto before calculating the actual width is important! We must let the browser set the width as browser zoom values are impossible to calculate. */ mCSB_container.css({"position":"absolute","width":"auto"}) .wrap("
") .css({ /* set actual width, original position and un-wrap */ /* get the exact width (with decimals) and then round-up. Using jquery outerWidth() will round the width value which will mess up with inner elements that have non-integer width */ "width":(Math.ceil(mCSB_container[0].getBoundingClientRect().right+0.4)-Math.floor(mCSB_container[0].getBoundingClientRect().left)), "position":"relative" }).unwrap(); } }, /* -------------------- */ /* adds scrollbar buttons */ _scrollButtons:function(){ var $this=$(this),d=$this.data(pluginPfx),o=d.opt, mCSB_scrollTools=$(".mCSB_"+d.idx+"_scrollbar:first"), btnHTML=[ "","", "","" ], btn=[(o.axis==="x" ? btnHTML[2] : btnHTML[0]),(o.axis==="x" ? btnHTML[3] : btnHTML[1]),btnHTML[2],btnHTML[3]]; if(o.scrollButtons.enable){ mCSB_scrollTools.prepend(btn[0]).append(btn[1]).next(".mCSB_scrollTools").prepend(btn[2]).append(btn[3]); } }, /* -------------------- */ /* detects/sets css max-height value */ _maxHeight:function(){ var $this=$(this),d=$this.data(pluginPfx),o=d.opt, mCustomScrollBox=$("#mCSB_"+d.idx), mh=$this.css("max-height"),pct=mh.indexOf("%")!==-1, bs=$this.css("box-sizing"); if(mh!=="none"){ var val=pct ? $this.parent().height()*parseInt(mh)/100 : parseInt(mh); /* if element's css box-sizing is "border-box", subtract any paddings and/or borders from max-height value */ if(bs==="border-box"){val-=(($this.innerHeight()-$this.height())+($this.outerHeight()-$this.innerHeight()));} mCustomScrollBox.css("max-height",Math.round(val)); } }, /* -------------------- */ /* auto-adjusts scrollbar dragger length */ _setDraggerLength:function(){ var $this=$(this),d=$this.data(pluginPfx), mCustomScrollBox=$("#mCSB_"+d.idx), mCSB_container=$("#mCSB_"+d.idx+"_container"), mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")], ratio=[mCustomScrollBox.height()/mCSB_container.outerHeight(false),mCustomScrollBox.width()/mCSB_container.outerWidth(false)], l=[ parseInt(mCSB_dragger[0].css("min-height")),Math.round(ratio[0]*mCSB_dragger[0].parent().height()), parseInt(mCSB_dragger[1].css("min-width")),Math.round(ratio[1]*mCSB_dragger[1].parent().width()) ], h=oldIE && (l[1]mCustomScrollBox.height(),contentWidth>mCustomScrollBox.width()]; }, /* -------------------- */ /* resets content position to 0 */ _resetContentPosition:function(){ var $this=$(this),d=$this.data(pluginPfx),o=d.opt, mCustomScrollBox=$("#mCSB_"+d.idx), mCSB_container=$("#mCSB_"+d.idx+"_container"), mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")]; functions._stop($this); /* stop any current scrolling before resetting */ if((o.axis!=="x" && !d.overflowed[0]) || (o.axis==="y" && d.overflowed[0])){mCSB_dragger[0].add(mCSB_container).css("top",0);} /* reset y */ if((o.axis!=="y" && !d.overflowed[1]) || (o.axis==="x" && d.overflowed[1])){ /* reset x */ var cx=dx=0; if(d.langDir==="rtl"){ /* adjust left position for rtl direction */ cx=mCustomScrollBox.width()-mCSB_container.outerWidth(false); dx=Math.abs(cx/d.scrollRatio.x); } mCSB_container.css("left",cx); mCSB_dragger[1].css("left",dx); } }, /* -------------------- */ /* binds scrollbar events */ _bindEvents:function(){ var $this=$(this),d=$this.data(pluginPfx),o=d.opt; if(!d.bindEvents){ /* check if events are already bound */ functions._draggable.call(this); if(o.contentTouchScroll){functions._contentDraggable.call(this);} if(o.mouseWheel.enable){ /* bind mousewheel fn when plugin is available */ function _mwt(){ mousewheelTimeout=setTimeout(function(){ if(!$.event.special.mousewheel){ _mwt(); }else{ clearTimeout(mousewheelTimeout); functions._mousewheel.call($this[0]); } },1000); } var mousewheelTimeout; _mwt(); } functions._draggerRail.call(this); functions._wrapperScroll.call(this); if(o.advanced.autoScrollOnFocus){functions._focus.call(this);} if(o.scrollButtons.enable){functions._buttons.call(this);} if(o.keyboard.enable){functions._keyboard.call(this);} d.bindEvents=true; } }, /* -------------------- */ /* unbinds scrollbar events */ _unbindEvents:function(){ var $this=$(this),d=$this.data(pluginPfx), namespace=pluginPfx+"_"+d.idx, sb=".mCSB_"+d.idx+"_scrollbar", sel=$("#mCSB_"+d.idx+",#mCSB_"+d.idx+"_container,#mCSB_"+d.idx+"_container_wrapper,"+sb+" .mCSB_draggerContainer,#mCSB_"+d.idx+"_dragger_vertical,#mCSB_"+d.idx+"_dragger_horizontal,"+sb+">a"), mCSB_container=$("#mCSB_"+d.idx+"_container"); if(d.bindEvents){ /* check if events are bound */ /* unbind namespaced events from document/selectors */ $(document).unbind("."+namespace); sel.each(function(){ $(this).unbind("."+namespace); }); /* clear and delete timeouts/objects */ clearTimeout($this[0]._focusTimeout); functions._delete.call(null,$this[0]._focusTimeout); clearTimeout(d.sequential.step); functions._delete.call(null,d.sequential.step); clearTimeout(mCSB_container[0].onCompleteTimeout); functions._delete.call(null,mCSB_container[0].onCompleteTimeout); d.bindEvents=false; } }, /* -------------------- */ /* toggles scrollbar visibility */ _scrollbarVisibility:function(disabled){ var $this=$(this),d=$this.data(pluginPfx),o=d.opt, contentWrapper=$("#mCSB_"+d.idx+"_container_wrapper"), content=contentWrapper.length ? contentWrapper : $("#mCSB_"+d.idx+"_container"), scrollbar=[$("#mCSB_"+d.idx+"_scrollbar_vertical"),$("#mCSB_"+d.idx+"_scrollbar_horizontal")], mCSB_dragger=[scrollbar[0].find(".mCSB_dragger"),scrollbar[1].find(".mCSB_dragger")]; if(o.axis!=="x"){ if(d.overflowed[0] && !disabled){ scrollbar[0].add(mCSB_dragger[0]).add(scrollbar[0].children("a")).css("display","block"); content.removeClass("mCS_no_scrollbar_y mCS_y_hidden"); }else{ if(o.alwaysShowScrollbar){ if(o.alwaysShowScrollbar!==2){mCSB_dragger[0].add(scrollbar[0].children("a")).css("display","none");} content.removeClass("mCS_y_hidden"); }else{ scrollbar[0].css("display","none"); content.addClass("mCS_y_hidden"); } content.addClass("mCS_no_scrollbar_y"); } } if(o.axis!=="y"){ if(d.overflowed[1] && !disabled){ scrollbar[1].add(mCSB_dragger[1]).add(scrollbar[1].children("a")).css("display","block"); content.removeClass("mCS_no_scrollbar_x mCS_x_hidden"); }else{ if(o.alwaysShowScrollbar){ if(o.alwaysShowScrollbar!==2){mCSB_dragger[1].add(scrollbar[1].children("a")).css("display","none");} content.removeClass("mCS_x_hidden"); }else{ scrollbar[1].css("display","none"); content.addClass("mCS_x_hidden"); } content.addClass("mCS_no_scrollbar_x"); } } if(!d.overflowed[0] && !d.overflowed[1]){ $this.addClass("mCS_no_scrollbar"); }else{ $this.removeClass("mCS_no_scrollbar"); } }, /* -------------------- */ /* returns input coordinates of pointer, touch and mouse events (relative to document) */ _coordinates:function(e){ var t=e.type; switch(t){ case "pointerdown": case "MSPointerDown": case "pointermove": case "MSPointerMove": case "pointerup": case "MSPointerUp": return [e.originalEvent.pageY,e.originalEvent.pageX]; break; case "touchstart": case "touchmove": case "touchend": var touch=e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; return [touch.pageY,touch.pageX]; break; default: return [e.pageY,e.pageX]; } }, /* -------------------- */ /* SCROLLBAR DRAG EVENTS scrolls content via scrollbar dragging */ _draggable:function(){ var $this=$(this),d=$this.data(pluginPfx),o=d.opt, namespace=pluginPfx+"_"+d.idx, draggerId=["mCSB_"+d.idx+"_dragger_vertical","mCSB_"+d.idx+"_dragger_horizontal"], mCSB_container=$("#mCSB_"+d.idx+"_container"), mCSB_dragger=$("#"+draggerId[0]+",#"+draggerId[1]), draggable,dragY,dragX; mCSB_dragger.bind("mousedown."+namespace+" touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace,function(e){ e.stopImmediatePropagation(); e.preventDefault(); if(!functions._mouseBtnLeft(e)){return;} /* left mouse button only */ touchActive=true; if(oldIE){document.onselectstart=function(){return false;}} /* disable text selection for IE < 9 */ _iframe(false); /* enable scrollbar dragging over iframes by disabling their events */ functions._stop($this); draggable=$(this); var offset=draggable.offset(),y=functions._coordinates(e)[0]-offset.top,x=functions._coordinates(e)[1]-offset.left, h=draggable.height()+offset.top,w=draggable.width()+offset.left; if(y0 && x0){ dragY=y; dragX=x; } functions._onDragClasses(draggable,"active",o.autoExpandScrollbar); }).bind("touchmove."+namespace,function(e){ e.stopImmediatePropagation(); e.preventDefault(); var offset=draggable.offset(),y=functions._coordinates(e)[0]-offset.top,x=functions._coordinates(e)[1]-offset.left; _drag(dragY,dragX,y,x); }); $(document).bind("mousemove."+namespace+" pointermove."+namespace+" MSPointerMove."+namespace,function(e){ if(draggable){ var offset=draggable.offset(),y=functions._coordinates(e)[0]-offset.top,x=functions._coordinates(e)[1]-offset.left; if(dragY===y){return;} /* has it really moved? */ _drag(dragY,dragX,y,x); } }).add(mCSB_dragger).bind("mouseup."+namespace+" touchend."+namespace+" pointerup."+namespace+" MSPointerUp."+namespace,function(e){ if(draggable){ functions._onDragClasses(draggable,"active",o.autoExpandScrollbar); draggable=null; } touchActive=false; if(oldIE){document.onselectstart=null;} /* enable text selection for IE < 9 */ _iframe(true); /* enable iframes events */ }); function _iframe(evt){ var el=mCSB_container.find("iframe"); if(!el.length){return;} /* check if content contains iframes */ var val=!evt ? "none" : "auto"; el.css("pointer-events",val); /* for IE11, iframe's display property should not be "block" */ } function _drag(dragY,dragX,y,x){ mCSB_container[0].idleTimer=o.scrollInertia<233 ? 250 : 0; if(draggable.attr("id")===draggerId[1]){ var dir="x",to=((draggable[0].offsetLeft-dragX)+x)*d.scrollRatio.x; }else{ var dir="y",to=((draggable[0].offsetTop-dragY)+y)*d.scrollRatio.y; } functions._scrollTo($this,to.toString(),{dir:dir,drag:true}); } }, /* -------------------- */ /* TOUCH SWIPE EVENTS scrolls content via touch swipe Emulates the native touch-swipe scrolling with momentum found in iOS, Android and WP devices */ _contentDraggable:function(){ var $this=$(this),d=$this.data(pluginPfx),o=d.opt, namespace=pluginPfx+"_"+d.idx, mCustomScrollBox=$("#mCSB_"+d.idx), mCSB_container=$("#mCSB_"+d.idx+"_container"), mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")], dragY,dragX,touchStartY,touchStartX,touchMoveY=[],touchMoveX=[],startTime,runningTime,endTime,distance,speed,amount, durA=0,durB,overwrite=o.axis==="yx" ? "none" : "all"; mCSB_container.bind("touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace,function(e){ if(!functions._pointerTouch(e) || touchActive){return;} var offset=mCSB_container.offset(); dragY=functions._coordinates(e)[0]-offset.top; dragX=functions._coordinates(e)[1]-offset.left; }).bind("touchmove."+namespace+" pointermove."+namespace+" MSPointerMove."+namespace,function(e){ if(!functions._pointerTouch(e) || touchActive){return;} e.stopImmediatePropagation(); runningTime=functions._getTime(); var offset=mCustomScrollBox.offset(),y=functions._coordinates(e)[0]-offset.top,x=functions._coordinates(e)[1]-offset.left, easing="mcsLinearOut"; touchMoveY.push(y); touchMoveX.push(x); if(d.overflowed[0]){ var limit=mCSB_dragger[0].parent().height()-mCSB_dragger[0].height(), prevent=((dragY-y)>0 && (y-dragY)>-(limit*d.scrollRatio.y)); } if(d.overflowed[1]){ var limitX=mCSB_dragger[1].parent().width()-mCSB_dragger[1].width(), preventX=((dragX-x)>0 && (x-dragX)>-(limitX*d.scrollRatio.x)); } if(prevent || preventX){e.preventDefault();} /* prevent native document scrolling */ amount=o.axis==="yx" ? [(dragY-y),(dragX-x)] : o.axis==="x" ? [null,(dragX-x)] : [(dragY-y),null]; mCSB_container[0].idleTimer=250; if(d.overflowed[0]){_drag(amount[0],durA,easing,"y","all",true);} if(d.overflowed[1]){_drag(amount[1],durA,easing,"x",overwrite,true);} }); mCustomScrollBox.bind("touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace,function(e){ if(!functions._pointerTouch(e) || touchActive){return;} e.stopImmediatePropagation(); functions._stop($this); startTime=functions._getTime(); var offset=mCustomScrollBox.offset(); touchStartY=functions._coordinates(e)[0]-offset.top; touchStartX=functions._coordinates(e)[1]-offset.left; touchMoveY=[]; touchMoveX=[]; }).bind("touchend."+namespace+" pointerup."+namespace+" MSPointerUp."+namespace,function(e){ if(!functions._pointerTouch(e) || touchActive){return;} e.stopImmediatePropagation(); endTime=functions._getTime(); var offset=mCustomScrollBox.offset(),y=functions._coordinates(e)[0]-offset.top,x=functions._coordinates(e)[1]-offset.left; if((endTime-runningTime)>30){return;} speed=1000/(endTime-startTime); var easing="mcsEaseOut",slow=speed<2.5, diff=slow ? [touchMoveY[touchMoveY.length-2],touchMoveX[touchMoveX.length-2]] : [0,0]; distance=slow ? [(y-diff[0]),(x-diff[1])] : [y-touchStartY,x-touchStartX]; var absDistance=[Math.abs(distance[0]),Math.abs(distance[1])]; speed=slow ? [Math.abs(distance[0]/4),Math.abs(distance[1]/4)] : [speed,speed]; var a=[ Math.abs(mCSB_container[0].offsetTop)-(distance[0]*_m((absDistance[0]/speed[0]),speed[0])), Math.abs(mCSB_container[0].offsetLeft)-(distance[1]*_m((absDistance[1]/speed[1]),speed[1])) ]; amount=o.axis==="yx" ? [a[0],a[1]] : o.axis==="x" ? [null,a[1]] : [a[0],null]; durB=[(absDistance[0]*4)+o.scrollInertia,(absDistance[1]*4)+o.scrollInertia]; var md=parseInt(o.contentTouchScroll) || 0; /* absolute minimum distance required */ amount[0]=absDistance[0]>md ? amount[0] : 0; amount[1]=absDistance[1]>md ? amount[1] : 0; if(d.overflowed[0]){_drag(amount[0],durB[0],easing,"y",overwrite,false);} if(d.overflowed[1]){_drag(amount[1],durB[1],easing,"x",overwrite,false);} }); function _m(ds,s){ var r=[s*1.5,s*2,s/1.5,s/2]; if(ds>90){ return s>4 ? r[0] : r[3]; }else if(ds>60){ return s>3 ? r[3] : r[2]; }else if(ds>30){ return s>8 ? r[1] : s>6 ? r[0] : s>4 ? s : r[2]; }else{ return s>8 ? s : r[3]; } } function _drag(amount,dur,easing,dir,overwrite,drag){ if(!amount){return;} functions._scrollTo($this,amount.toString(),{dur:dur,scrollEasing:easing,dir:dir,overwrite:overwrite,drag:drag}); } }, /* -------------------- */ /* MOUSE WHEEL EVENT scrolls content via mouse-wheel via mouse-wheel plugin (https://github.com/brandonaaron/jquery-mousewheel) */ _mousewheel:function(){ var $this=$(this),d=$this.data(pluginPfx),o=d.opt, namespace=pluginPfx+"_"+d.idx, mCustomScrollBox=$("#mCSB_"+d.idx), mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")]; mCustomScrollBox.bind("mousewheel."+namespace,function(e,delta){ functions._stop($this); if(functions._disableMousewheel($this,e.target)){return;} /* disables mouse-wheel when hovering specific elements */ var deltaFactor=o.mouseWheel.deltaFactor!=="auto" ? parseInt(o.mouseWheel.deltaFactor) : (oldIE && e.deltaFactor<100) ? 100 : e.deltaFactor<40 ? 40 : e.deltaFactor || 100; if(o.axis==="x" || o.mouseWheel.axis==="x"){ var dir="x", px=[Math.round(deltaFactor*d.scrollRatio.x),parseInt(o.mouseWheel.scrollAmount)], amount=o.mouseWheel.scrollAmount!=="auto" ? px[1] : px[0]>=mCustomScrollBox.width() ? mCustomScrollBox.width()*0.9 : px[0], contentPos=Math.abs($("#mCSB_"+d.idx+"_container")[0].offsetLeft), draggerPos=mCSB_dragger[1][0].offsetLeft, limit=mCSB_dragger[1].parent().width()-mCSB_dragger[1].width(), dlt=e.deltaX || e.deltaY || delta; }else{ var dir="y", px=[Math.round(deltaFactor*d.scrollRatio.y),parseInt(o.mouseWheel.scrollAmount)], amount=o.mouseWheel.scrollAmount!=="auto" ? px[1] : px[0]>=mCustomScrollBox.height() ? mCustomScrollBox.height()*0.9 : px[0], contentPos=Math.abs($("#mCSB_"+d.idx+"_container")[0].offsetTop), draggerPos=mCSB_dragger[0][0].offsetTop, limit=mCSB_dragger[0].parent().height()-mCSB_dragger[0].height(), dlt=e.deltaY || delta; } if((dir==="y" && !d.overflowed[0]) || (dir==="x" && !d.overflowed[1])){return;} if(o.mouseWheel.invert){dlt=-dlt;} if(o.mouseWheel.normalizeDelta){dlt=dlt<0 ? -1 : 1;} if((dlt>0 && draggerPos!==0) || (dlt<0 && draggerPos!==limit) || o.mouseWheel.preventDefault){ e.stopImmediatePropagation(); e.preventDefault(); } functions._scrollTo($this,(contentPos-(dlt*amount)).toString(),{dir:dir}); }); }, /* -------------------- */ /* disables mouse-wheel when hovering specific elements like select, datalist etc. */ _disableMousewheel:function(el,target){ var tag=target.nodeName.toLowerCase(), tags=el.data(pluginPfx).opt.mouseWheel.disableOver, /* elements that require focus */ focusTags=["select","textarea"]; return $.inArray(tag,tags) > -1 && !($.inArray(tag,focusTags) > -1 && !$(target).is(":focus")); }, /* -------------------- */ /* DRAGGER RAIL CLICK EVENT scrolls content via dragger rail */ _draggerRail:function(){ var $this=$(this),d=$this.data(pluginPfx), namespace=pluginPfx+"_"+d.idx, mCSB_container=$("#mCSB_"+d.idx+"_container"), wrapper=mCSB_container.parent(), mCSB_draggerContainer=$(".mCSB_"+d.idx+"_scrollbar .mCSB_draggerContainer"); mCSB_draggerContainer.bind("touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace,function(e){ touchActive=true; }).bind("touchend."+namespace+" pointerup."+namespace+" MSPointerUp."+namespace,function(e){ touchActive=false; }).bind("click."+namespace,function(e){ if($(e.target).hasClass("mCSB_draggerContainer") || $(e.target).hasClass("mCSB_draggerRail")){ functions._stop($this); var el=$(this),mCSB_dragger=el.find(".mCSB_dragger"); if(el.parent(".mCSB_scrollTools_horizontal").length>0){ if(!d.overflowed[1]){return;} var dir="x", clickDir=e.pageX>mCSB_dragger.offset().left ? -1 : 1, to=Math.abs(mCSB_container[0].offsetLeft)-(clickDir*(wrapper.width()*0.9)); }else{ if(!d.overflowed[0]){return;} var dir="y", clickDir=e.pageY>mCSB_dragger.offset().top ? -1 : 1, to=Math.abs(mCSB_container[0].offsetTop)-(clickDir*(wrapper.height()*0.9)); } functions._scrollTo($this,to.toString(),{dir:dir,scrollEasing:"mcsEaseInOut"}); } }); }, /* -------------------- */ /* FOCUS EVENT scrolls content via element focus (e.g. clicking an input, pressing TAB key etc.) */ _focus:function(){ var $this=$(this),d=$this.data(pluginPfx),o=d.opt, namespace=pluginPfx+"_"+d.idx, mCSB_container=$("#mCSB_"+d.idx+"_container"), wrapper=mCSB_container.parent(); mCSB_container.bind("focusin."+namespace,function(e){ var el=$(document.activeElement), nested=mCSB_container.find(".mCustomScrollBox").length, dur=0; if(!el.is(o.advanced.autoScrollOnFocus)){return;} functions._stop($this); clearTimeout($this[0]._focusTimeout); $this[0]._focusTimer=nested ? (dur+17)*nested : 0; $this[0]._focusTimeout=setTimeout(function(){ var to=[el.offset().top-mCSB_container.offset().top,el.offset().left-mCSB_container.offset().left], contentPos=[mCSB_container[0].offsetTop,mCSB_container[0].offsetLeft], isVisible=[ (contentPos[0]+to[0]>=0 && contentPos[0]+to[0]=0 && contentPos[0]+to[1]a"); btn.bind("mousedown."+namespace+" touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace+" mouseup."+namespace+" touchend."+namespace+" pointerup."+namespace+" MSPointerUp."+namespace+" mouseout."+namespace+" pointerout."+namespace+" MSPointerOut."+namespace+" click."+namespace,function(e){ e.preventDefault(); if(!functions._mouseBtnLeft(e)){return;} /* left mouse button only */ var btnClass=$(this).attr("class"); seq.type=o.scrollButtons.scrollType; switch(e.type){ case "mousedown": case "touchstart": case "pointerdown": case "MSPointerDown": if(seq.type==="stepped"){return;} touchActive=true; d.tweenRunning=false; _seq("on",btnClass); break; case "mouseup": case "touchend": case "pointerup": case "MSPointerUp": case "mouseout": case "pointerout": case "MSPointerOut": if(seq.type==="stepped"){return;} touchActive=false; if(seq.dir){_seq("off",btnClass);} break; case "click": if(seq.type!=="stepped" || d.tweenRunning){return;} _seq("on",btnClass); break; } function _seq(a,c){ seq.scrollAmount=o.snapAmount || o.scrollButtons.scrollAmount; functions._sequentialScroll.call(this,$this,a,c); } }); }, /* -------------------- */ /* KEYBOARD EVENTS scrolls content via keyboard Keys: up arrow, down arrow, left arrow, right arrow, PgUp, PgDn, Home, End */ _keyboard:function(){ var $this=$(this),d=$this.data(pluginPfx),o=d.opt,seq=d.sequential, namespace=pluginPfx+"_"+d.idx, mCustomScrollBox=$("#mCSB_"+d.idx), mCSB_container=$("#mCSB_"+d.idx+"_container"), wrapper=mCSB_container.parent(), editables="input,textarea,select,datalist,keygen,[contenteditable='true']"; mCustomScrollBox.attr("tabindex","0").bind("blur."+namespace+" keydown."+namespace+" keyup."+namespace,function(e){ switch(e.type){ case "blur": if(d.tweenRunning && seq.dir){_seq("off",null);} break; case "keydown": case "keyup": var code=e.keyCode ? e.keyCode : e.which,action="on"; if((o.axis!=="x" && (code===38 || code===40)) || (o.axis!=="y" && (code===37 || code===39))){ /* up (38), down (40), left (37), right (39) arrows */ if(((code===38 || code===40) && !d.overflowed[0]) || ((code===37 || code===39) && !d.overflowed[1])){return;} if(e.type==="keyup"){action="off";} if(!$(document.activeElement).is(editables)){ e.preventDefault(); e.stopImmediatePropagation(); _seq(action,code); } }else if(code===33 || code===34){ /* PgUp (33), PgDn (34) */ if(d.overflowed[0] || d.overflowed[1]){ e.preventDefault(); e.stopImmediatePropagation(); } if(e.type==="keyup"){ functions._stop($this); var keyboardDir=code===34 ? -1 : 1; if(o.axis==="x" || (o.axis==="yx" && d.overflowed[1] && !d.overflowed[0])){ var dir="x",to=Math.abs(mCSB_container[0].offsetLeft)-(keyboardDir*(wrapper.width()*0.9)); }else{ var dir="y",to=Math.abs(mCSB_container[0].offsetTop)-(keyboardDir*(wrapper.height()*0.9)); } functions._scrollTo($this,to.toString(),{dir:dir,scrollEasing:"mcsEaseInOut"}); } }else if(code===35 || code===36){ /* End (35), Home (36) */ if(!$(document.activeElement).is(editables)){ if(d.overflowed[0] || d.overflowed[1]){ e.preventDefault(); e.stopImmediatePropagation(); } if(e.type==="keyup"){ if(o.axis==="x" || (o.axis==="yx" && d.overflowed[1] && !d.overflowed[0])){ var dir="x",to=code===35 ? Math.abs(wrapper.width()-mCSB_container.outerWidth(false)) : 0; }else{ var dir="y",to=code===35 ? Math.abs(wrapper.height()-mCSB_container.outerHeight(false)) : 0; } functions._scrollTo($this,to.toString(),{dir:dir,scrollEasing:"mcsEaseInOut"}); } } } break; } function _seq(a,c){ seq.type=o.keyboard.scrollType; seq.scrollAmount=o.snapAmount || o.keyboard.scrollAmount; if(seq.type==="stepped" && d.tweenRunning){return;} functions._sequentialScroll.call(this,$this,a,c); } }); }, /* -------------------- */ /* scrolls content sequentially (used when scrolling via buttons, keyboard arrows etc.) */ _sequentialScroll:function(el,action,trigger){ var d=el.data(pluginPfx),o=d.opt,seq=d.sequential, mCSB_container=$("#mCSB_"+d.idx+"_container"), once=seq.type==="stepped" ? true : false; switch(action){ case "on": seq.dir=[ (trigger==="mCSB_buttonRight" || trigger==="mCSB_buttonLeft" || trigger===39 || trigger===37 ? "x" : "y"), (trigger==="mCSB_buttonUp" || trigger==="mCSB_buttonLeft" || trigger===38 || trigger===37 ? -1 : 1) ]; functions._stop(el); if(functions._isNumeric(trigger) && seq.type==="stepped"){return;} _start(once); break; case "off": _stop(); if(once || (d.tweenRunning && seq.dir)){ _start(true); } break; } /* starts sequence */ function _start(once){ var c=seq.type!=="stepped", /* continuous scrolling */ t=!once ? 1000/60 : c ? o.scrollInertia/1.5 : o.scrollInertia, /* timer */ m=!once ? 2.5 : c ? 7.5 : 40, /* multiplier */ contentPos=[Math.abs(mCSB_container[0].offsetTop),Math.abs(mCSB_container[0].offsetLeft)], ratio=[d.scrollRatio.y>10 ? 10 : d.scrollRatio.y,d.scrollRatio.x>10 ? 10 : d.scrollRatio.x], amount=seq.dir[0]==="x" ? contentPos[1]+(seq.dir[1]*(ratio[1]*m)) : contentPos[0]+(seq.dir[1]*(ratio[0]*m)), px=seq.dir[0]==="x" ? contentPos[1]+(seq.dir[1]*parseInt(seq.scrollAmount)) : contentPos[0]+(seq.dir[1]*parseInt(seq.scrollAmount)), to=seq.scrollAmount!=="auto" ? px : amount, easing=!once ? "mcsLinear" : c ? "mcsLinearOut" : "mcsEaseInOut", onComplete=!once ? false : true; if(once && t<17){ to=seq.dir[0]==="x" ? contentPos[1] : contentPos[0]; } functions._scrollTo(el,to.toString(),{dir:seq.dir[0],scrollEasing:easing,dur:t,onComplete:onComplete}); if(once){ seq.dir=false; return; } clearTimeout(seq.step); seq.step=setTimeout(function(){ _start(); },t); } /* stops sequence */ function _stop(){ clearTimeout(seq.step); functions._stop(el); } }, /* -------------------- */ /* returns a yx array from value */ _arr:function(val){ var o=$(this).data(pluginPfx).opt,vals=[]; if(typeof val==="function"){val=val();} /* check if the value is a single anonymous function */ /* check if value is object or array, its length and create an array with yx values */ if(!(val instanceof Array)){ /* object value (e.g. {y:"100",x:"100"}, 100 etc.) */ vals[0]=val.y ? val.y : val.x || o.axis==="x" ? null : val; vals[1]=val.x ? val.x : val.y || o.axis==="y" ? null : val; }else{ /* array value (e.g. [100,100]) */ vals=val.length>1 ? [val[0],val[1]] : o.axis==="x" ? [null,val[0]] : [val[0],null]; } /* check if array values are anonymous functions */ if(typeof vals[0]==="function"){vals[0]=vals[0]();} if(typeof vals[1]==="function"){vals[1]=vals[1]();} return vals; }, /* -------------------- */ /* translates values (e.g. "top", 100, "100px", "#id") to actual scroll-to positions */ _to:function(val,dir){ if(val==null || typeof val=="undefined"){return;} var $this=$(this),d=$this.data(pluginPfx),o=d.opt, mCSB_container=$("#mCSB_"+d.idx+"_container"), wrapper=mCSB_container.parent(), t=typeof val; if(!dir){dir=o.axis==="x" ? "x" : "y";} var contentLength=dir==="x" ? mCSB_container.outerWidth(false) : mCSB_container.outerHeight(false), contentOffset=dir==="x" ? mCSB_container.offset().left : mCSB_container.offset().top, contentPos=dir==="x" ? mCSB_container[0].offsetLeft : mCSB_container[0].offsetTop, cssProp=dir==="x" ? "left" : "top"; switch(t){ case "function": /* this currently is not used. Consider removing it */ return val(); break; case "object": if(val.nodeType){ /* DOM */ var objOffset=dir==="x" ? $(val).offset().left : $(val).offset().top; }else if(val.jquery){ /* jquery object */ if(!val.length){return;} var objOffset=dir==="x" ? val.offset().left : val.offset().top; } return objOffset-contentOffset; break; case "string": case "number": if(functions._isNumeric.call(null,val)){ /* numeric value */ return Math.abs(val); }else if(val.indexOf("%")!==-1){ /* percentage value */ return Math.abs(contentLength*parseInt(val)/100); }else if(val.indexOf("-=")!==-1){ /* decrease value */ return Math.abs(contentPos-parseInt(val.split("-=")[1])); }else if(val.indexOf("+=")!==-1){ /* inrease value */ var p=(contentPos+parseInt(val.split("+=")[1])); return p>=0 ? 0 : Math.abs(p); }else if(val.indexOf("px")!==-1 && functions._isNumeric.call(null,val.split("px")[0])){ /* pixels string value (e.g. "100px") */ return Math.abs(val.split("px")[0]); }else{ if(val==="top" || val==="left"){ /* special strings */ return 0; }else if(val==="bottom"){ return Math.abs(wrapper.height()-mCSB_container.outerHeight(false)); }else if(val==="right"){ return Math.abs(wrapper.width()-mCSB_container.outerWidth(false)); }else if(val==="first" || val==="last"){ var obj=mCSB_container.find(":"+val), objOffset=dir==="x" ? $(obj).offset().left : $(obj).offset().top; return objOffset-contentOffset; }else{ if($(val).length){ /* jquery selector */ var objOffset=dir==="x" ? $(val).offset().left : $(val).offset().top; return objOffset-contentOffset; }else{ /* other values (e.g. "100em") */ mCSB_container.css(cssProp,val); methods.update.call(null,$this[0]); return; } } } break; } }, /* -------------------- */ /* calls the update method automatically */ _autoUpdate:function(rem){ var $this=$(this),d=$this.data(pluginPfx),o=d.opt, mCSB_container=$("#mCSB_"+d.idx+"_container"); if(rem){ /* removes autoUpdate timer usage: functions._autoUpdate.call(this,"remove"); */ clearTimeout(mCSB_container[0].autoUpdate); functions._delete.call(null,mCSB_container[0].autoUpdate); return; } var wrapper=mCSB_container.parent(), scrollbar=[$("#mCSB_"+d.idx+"_scrollbar_vertical"),$("#mCSB_"+d.idx+"_scrollbar_horizontal")], scrollbarSize=function(){return [ scrollbar[0].is(":visible") ? scrollbar[0].outerHeight(true) : 0, /* returns y-scrollbar height */ scrollbar[1].is(":visible") ? scrollbar[1].outerWidth(true) : 0 /* returns x-scrollbar width */ ]}, oldSelSize=sizesSum(),newSelSize, os=[mCSB_container.outerHeight(false),mCSB_container.outerWidth(false),wrapper.height(),wrapper.width(),scrollbarSize()[0],scrollbarSize()[1]],ns, oldImgsLen=imgSum(),newImgsLen; upd(); function upd(){ clearTimeout(mCSB_container[0].autoUpdate); mCSB_container[0].autoUpdate=setTimeout(function(){ /* update on specific selector(s) length and size change */ if(o.advanced.updateOnSelectorChange){ newSelSize=sizesSum(); if(newSelSize!==oldSelSize){ doUpd(); oldSelSize=newSelSize; return; } } /* update on main element and scrollbar size changes */ if(o.advanced.updateOnContentResize){ ns=[mCSB_container.outerHeight(false),mCSB_container.outerWidth(false),wrapper.height(),wrapper.width(),scrollbarSize()[0],scrollbarSize()[1]]; if(ns[0]!==os[0] || ns[1]!==os[1] || ns[2]!==os[2] || ns[3]!==os[3] || ns[4]!==os[4] || ns[5]!==os[5]){ doUpd(); os=ns; } } /* update on image load */ if(o.advanced.updateOnImageLoad){ newImgsLen=imgSum(); if(newImgsLen!==oldImgsLen){ mCSB_container.find("img").each(function(){ imgLoader(this.src); }); oldImgsLen=newImgsLen; } } if(o.advanced.updateOnSelectorChange || o.advanced.updateOnContentResize || o.advanced.updateOnImageLoad){upd();} },60); } /* returns images amount */ function imgSum(){ var total=0 if(o.advanced.updateOnImageLoad){total=mCSB_container.find("img").length;} return total; } /* a tiny image loader */ function imgLoader(src){ var img=new Image(); function createDelegate(contextObject,delegateMethod){ return function(){return delegateMethod.apply(contextObject,arguments);} } function imgOnLoad(){ this.onload=null; doUpd(); } img.onload=createDelegate(img,imgOnLoad); img.src=src; } /* returns the total height and width sum of all elements matching the selector */ function sizesSum(){ if(o.advanced.updateOnSelectorChange===true){o.advanced.updateOnSelectorChange="*";} var total=0,sel=mCSB_container.find(o.advanced.updateOnSelectorChange); if(o.advanced.updateOnSelectorChange && sel.length>0){sel.each(function(){total+=$(this).height()+$(this).width();});} return total; } /* calls the update method */ function doUpd(){ clearTimeout(mCSB_container[0].autoUpdate); methods.update.call(null,$this[0]); } }, /* -------------------- */ /* snaps scrolling to a multiple of a pixels number */ _snapAmount:function(to,amount,offset){ return (Math.round(to/amount)*amount-offset); }, /* -------------------- */ /* stops content and scrollbar animations */ _stop:function(el){ var d=el.data(pluginPfx), sel=$("#mCSB_"+d.idx+"_container,#mCSB_"+d.idx+"_container_wrapper,#mCSB_"+d.idx+"_dragger_vertical,#mCSB_"+d.idx+"_dragger_horizontal"); sel.each(function(){ functions._stopTween.call(this); }); }, /* -------------------- */ /* ANIMATES CONTENT This is where the actual scrolling happens */ _scrollTo:function(el,to,options){ var d=el.data(pluginPfx),o=d.opt, defaults={ trigger:"internal", dir:"y", scrollEasing:"mcsEaseOut", drag:false, dur:o.scrollInertia, overwrite:"all", callbacks:true, onStart:true, onUpdate:true, onComplete:true }, options=$.extend(defaults,options), dur=[options.dur,(options.drag ? 0 : options.dur)], mCustomScrollBox=$("#mCSB_"+d.idx), mCSB_container=$("#mCSB_"+d.idx+"_container"), totalScrollOffsets=o.callbacks.onTotalScrollOffset ? functions._arr.call(el,o.callbacks.onTotalScrollOffset) : [0,0], totalScrollBackOffsets=o.callbacks.onTotalScrollBackOffset ? functions._arr.call(el,o.callbacks.onTotalScrollBackOffset) : [0,0]; d.trigger=options.trigger; if(o.snapAmount){to=functions._snapAmount(to,o.snapAmount,o.snapOffset);} /* scrolling snapping */ switch(options.dir){ case "x": var mCSB_dragger=$("#mCSB_"+d.idx+"_dragger_horizontal"), property="left", contentPos=mCSB_container[0].offsetLeft, limit=[ mCustomScrollBox.width()-mCSB_container.outerWidth(false), mCSB_dragger.parent().width()-mCSB_dragger.width() ], scrollTo=[to,(to/d.scrollRatio.x)], tso=totalScrollOffsets[1], tsbo=totalScrollBackOffsets[1], totalScrollOffset=tso>0 ? tso/d.scrollRatio.x : 0, totalScrollBackOffset=tsbo>0 ? tsbo/d.scrollRatio.x : 0; break; case "y": var mCSB_dragger=$("#mCSB_"+d.idx+"_dragger_vertical"), property="top", contentPos=mCSB_container[0].offsetTop, limit=[ mCustomScrollBox.height()-mCSB_container.outerHeight(false), mCSB_dragger.parent().height()-mCSB_dragger.height() ], scrollTo=[to,(to/d.scrollRatio.y)], tso=totalScrollOffsets[0], tsbo=totalScrollBackOffsets[0], totalScrollOffset=tso>0 ? tso/d.scrollRatio.y : 0, totalScrollBackOffset=tsbo>0 ? tsbo/d.scrollRatio.y : 0; break; } if(scrollTo[1]<0){ scrollTo=[0,0]; }else if(scrollTo[1]>=limit[1]){ scrollTo=[limit[0],limit[1]]; }else{ scrollTo[0]=-scrollTo[0]; } clearTimeout(mCSB_container[0].onCompleteTimeout); if(!d.tweenRunning && ((contentPos===0 && scrollTo[0]>=0) || (contentPos===limit[0] && scrollTo[0]<=limit[0]))){return;} functions._tweenTo.call(null,mCSB_dragger[0],property,Math.round(scrollTo[1]),dur[1],options.scrollEasing); functions._tweenTo.call(null,mCSB_container[0],property,Math.round(scrollTo[0]),dur[0],options.scrollEasing,options.overwrite,{ onStart:function(){ if(options.callbacks && options.onStart && !d.tweenRunning){ /* callbacks: onScrollStart */ if(_cb("onScrollStart")){_mcs(); o.callbacks.onScrollStart.call(el[0]);} d.tweenRunning=true; functions._onDragClasses(mCSB_dragger); d.cbOffsets=_cbOffsets(); } },onUpdate:function(){ if(options.callbacks && options.onUpdate){ /* callbacks: whileScrolling */ if(_cb("whileScrolling")){_mcs(); o.callbacks.whileScrolling.call(el[0]);} } },onComplete:function(){ if(options.callbacks && options.onComplete){ if(o.axis==="yx"){clearTimeout(mCSB_container[0].onCompleteTimeout);} var t=mCSB_container[0].idleTimer || 0; mCSB_container[0].onCompleteTimeout=setTimeout(function(){ /* callbacks: onScroll, onTotalScroll, onTotalScrollBack */ if(_cb("onScroll")){_mcs(); o.callbacks.onScroll.call(el[0]);} if(_cb("onTotalScroll") && scrollTo[1]>=limit[1]-totalScrollOffset && d.cbOffsets[0]){_mcs(); o.callbacks.onTotalScroll.call(el[0]);} if(_cb("onTotalScrollBack") && scrollTo[1]<=totalScrollBackOffset && d.cbOffsets[1]){_mcs(); o.callbacks.onTotalScrollBack.call(el[0]);} d.tweenRunning=false; mCSB_container[0].idleTimer=0; functions._onDragClasses(mCSB_dragger,"hide"); },t); } } }); /* checks if callback function exists */ function _cb(cb){ return d && o.callbacks[cb] && typeof o.callbacks[cb]==="function"; } /* checks whether callback offsets always trigger */ function _cbOffsets(){ return [o.callbacks.alwaysTriggerOffsets || contentPos>=limit[0]+tso,o.callbacks.alwaysTriggerOffsets || contentPos<=-tsbo]; } /* populates object with useful values for the user values: content: this.mcs.content content top position: this.mcs.top content left position: this.mcs.left dragger top position: this.mcs.draggerTop dragger left position: this.mcs.draggerLeft scrolling y percentage: this.mcs.topPct scrolling x percentage: this.mcs.leftPct scrolling direction: this.mcs.direction */ function _mcs(){ var cp=[mCSB_container[0].offsetTop,mCSB_container[0].offsetLeft], /* content position */ dp=[mCSB_dragger[0].offsetTop,mCSB_dragger[0].offsetLeft], /* dragger position */ cl=[mCSB_container.outerHeight(false),mCSB_container.outerWidth(false)], /* content length */ pl=[mCustomScrollBox.height(),mCustomScrollBox.width()]; /* content parent length */ el[0].mcs={ content:mCSB_container, /* original content wrapper as jquery object */ top:cp[0],left:cp[1],draggerTop:dp[0],draggerLeft:dp[1], topPct:Math.round((100*Math.abs(cp[0]))/(Math.abs(cl[0])-pl[0])),leftPct:Math.round((100*Math.abs(cp[1]))/(Math.abs(cl[1])-pl[1])), direction:options.dir }; /* this refers to the original element containing the scrollbar(s) usage: this.mcs.top, this.mcs.leftPct etc. */ } }, /* -------------------- */ /* CUSTOM JAVASCRIPT ANIMATION TWEEN Lighter and faster than jquery animate() and css transitions Animates top/left properties and includes easings */ _tweenTo:function(el,prop,to,duration,easing,overwrite,callbacks){ var callbacks=callbacks || {}, onStart=callbacks.onStart || function(){},onUpdate=callbacks.onUpdate || function(){},onComplete=callbacks.onComplete || function(){}, startTime=functions._getTime(),_delay,progress=0,from=el.offsetTop,elStyle=el.style; if(prop==="left"){from=el.offsetLeft;} var diff=to-from; el._mcsstop=0; if(overwrite!=="none"){_cancelTween();} _startTween(); function _step(){ if(el._mcsstop){return;} if(!progress){onStart.call();} progress=functions._getTime()-startTime; _tween(); if(progress>=el._mcstime){ el._mcstime=(progress>el._mcstime) ? progress+_delay-(progress- el._mcstime) : progress+_delay-1; if(el._mcstime0){ el._mcscurrVal=_ease(el._mcstime,from,diff,duration,easing); elStyle[prop]=Math.round(el._mcscurrVal)+"px"; }else{ elStyle[prop]=to+"px"; } onUpdate.call(); } function _startTween(){ _delay=1000/60; el._mcstime=progress+_delay; _request=(!window.requestAnimationFrame) ? function(f){_tween(); return setTimeout(f,0.01);} : window.requestAnimationFrame; el._mcsid=_request(_step); } function _cancelTween(){ if(el._mcsid==null){return;} if(!window.requestAnimationFrame){clearTimeout(el._mcsid); }else{window.cancelAnimationFrame(el._mcsid);} el._mcsid=null; } function _ease(t,b,c,d,type){ switch(type){ case "linear": case "mcsLinear": return c*t/d + b; break; case "mcsLinearOut": t/=d; t--; return c * Math.sqrt(1 - t*t) + b; break; case "easeInOutSmooth": t/=d/2; if(t<1) return c/2*t*t + b; t--; return -c/2 * (t*(t-2) - 1) + b; break; case "easeInOutStrong": t/=d/2; if(t<1) return c/2 * Math.pow( 2, 10 * (t - 1) ) + b; t--; return c/2 * ( -Math.pow( 2, -10 * t) + 2 ) + b; break; case "easeInOut": case "mcsEaseInOut": t/=d/2; if(t<1) return c/2*t*t*t + b; t-=2; return c/2*(t*t*t + 2) + b; break; case "easeOutSmooth": t/=d; t--; return -c * (t*t*t*t - 1) + b; break; case "easeOutStrong": return c * ( -Math.pow( 2, -10 * t/d ) + 1 ) + b; break; case "easeOut": case "mcsEaseOut": default: var ts=(t/=d)*t,tc=ts*t; return b+c*(0.499999999999997*tc*ts + -2.5*ts*ts + 5.5*tc + -6.5*ts + 4*t); } } }, /* -------------------- */ /* returns current time */ _getTime:function(){ if(window.performance && window.performance.now){ return window.performance.now(); }else{ if(window.performance && window.performance.webkitNow){ return window.performance.webkitNow(); }else{ if(Date.now){return Date.now();}else{return new Date().getTime();} } } }, /* -------------------- */ /* stops a tween */ _stopTween:function(){ var el=this; if(el._mcsid==null){return;} if(!window.requestAnimationFrame){clearTimeout(el._mcsid); }else{window.cancelAnimationFrame(el._mcsid);} el._mcsid=null; el._mcsstop=1; }, /* -------------------- */ /* deletes a property (avoiding the exception thrown by IE) */ _delete:function(p){ try{delete p;}catch(e){p=null;} }, /* -------------------- */ /* detects left mouse button */ _mouseBtnLeft:function(e){ return !(e.which && e.which!==1); }, /* -------------------- */ /* detects if pointer type event is touch */ _pointerTouch:function(e){ var t=e.originalEvent.pointerType; return !(t && t!=="touch" && t!==2); }, /* -------------------- */ /* checks if value is numeric */ _isNumeric:function(val){ return !isNaN(parseFloat(val)) && isFinite(val); } /* -------------------- */ }; /* ---------------------------------------- PLUGIN SETUP ---------------------------------------- */ /* plugin dependencies */ var _dlp=("https:"==document.location.protocol) ? "https:" : "http:"; /* dependency location protocol */ /* load jquery-mousewheel plugin (via CDN) if it's not present (works when mCustomScrollbar fn is called on window load) */ $.event.special.mousewheel || $("head").append(decodeURI("%3Cscript src="+_dlp+"//cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.11/jquery.mousewheel.min.js%3E%3C/script%3E")); /* plugin constructor functions */ $.fn[pluginNS]=function(method){ /* usage: $(selector).mCustomScrollbar(); */ if(methods[method]){ return methods[method].apply(this,Array.prototype.slice.call(arguments,1)); }else if(typeof method==="object" || !method){ return methods.init.apply(this,arguments); }else{ $.error("Method "+method+" does not exist"); } }; $[pluginNS]=function(method){ /* usage: $.mCustomScrollbar(); */ if(methods[method]){ return methods[method].apply(this,Array.prototype.slice.call(arguments,1)); }else if(typeof method==="object" || !method){ return methods.init.apply(this,arguments); }else{ $.error("Method "+method+" does not exist"); } }; /* allow setting plugin default options. usage: $.mCustomScrollbar.defaults.scrollInertia=500; to apply any changed default options on default selectors (below), use inside document ready fn e.g.: $(document).ready(function(){ $.mCustomScrollbar.defaults.scrollInertia=500; }); */ $[pluginNS].defaults=defaults; /* add window object (window.mCustomScrollbar) usage: if(window.mCustomScrollbar){console.log("custom scrollbar plugin loaded");} */ window[pluginNS]=true; $(window).load(function(){ $(defaultSelector)[pluginNS](); /* add scrollbars automatically on default selector */ }); })(jQuery,window,document); // source --> https://herbifeet.com/wp-content/plugins/wordpress_image_mapper/js/frontend/rollover.js?ver=4.9.24 (function($){ $(document).ready(function() { timelineImage(); }); function timelineImage(){ $('.timeline_rollover_top').unbind('hover').timelineRollover('top'); $('.timeline_rollover_right').unbind('hover').timelineRollover('right'); $('.timeline_rollover_bottom').unbind('hover').timelineRollover('bottom'); $('.timeline_rollover_left').unbind('hover').timelineRollover('left'); } $.fn.timelineRollover = function(type) { var lstart,lend; var tstart,tend; $(this).append('\n
'); switch (type) { case 'top' : lstart='0'; lend='0'; tstart='-100%'; tend='0'; break; case 'right' : lstart='100%'; lend='0'; tstart='0'; tend='0'; break; case 'bottom' : lstart='0'; lend='0'; tstart='100%'; tend='0'; break; case 'left' : lstart='-100%'; lend='0'; tstart='0'; tend='0'; break; } $(this).find('.image_roll_zoom').css({left:lstart, top:tstart}); $(this).hover(function(){ $(this).find('.image_roll_zoom').stop(true, true).animate({left: lend, top:tend},200); $(this).find('.image_roll_glass').stop(true, true).fadeIn(200); },function() { $(this).find('.image_roll_zoom').stop(true).animate({left:lstart, top:tstart},200); $(this).find('.image_roll_glass').stop(true, true).fadeOut(200); }); } })(jQuery); // source --> https://herbifeet.com/wp-content/plugins/wordpress_image_mapper/js/frontend/jquery.prettyPhoto.js?ver=4.9.24 /* ------------------------------------------------------------------------ Class: prettyPhoto Use: Lightbox clone for jQuery Author: Stephane Caron (http://www.no-margin-for-errors.com) Version: 3.1.6 ------------------------------------------------------------------------- */ (function($) { $.prettyPhoto = {version: '3.1.6'}; $.fn.prettyPhoto = function(pp_settings) { pp_settings = jQuery.extend({ hook: 'rel', /* the attribute tag to use for prettyPhoto hooks. default: 'rel'. For HTML5, use "data-rel" or similar. */ animation_speed: 'fast', /* fast/slow/normal */ ajaxcallback: function() {}, slideshow: 5000, /* false OR interval time in ms */ autoplay_slideshow: false, /* true/false */ opacity: 0.80, /* Value between 0 and 1 */ show_title: true, /* true/false */ allow_resize: true, /* Resize the photos bigger than viewport. true/false */ allow_expand: true, /* Allow the user to expand a resized image. true/false */ default_width: 500, default_height: 344, counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */ theme: 'pp_default', /* light_rounded / dark_rounded / light_square / dark_square / facebook */ horizontal_padding: 20, /* The padding on each side of the picture */ hideflash: false, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */ wmode: 'opaque', /* Set the flash wmode attribute */ autoplay: true, /* Automatically start videos: True/False */ modal: false, /* If set to true, only the close button will close the window */ deeplinking: true, /* Allow prettyPhoto to update the url to enable deeplinking. */ overlay_gallery: true, /* If set to true, a gallery will overlay the fullscreen image on mouse over */ overlay_gallery_max: 30, /* Maximum number of pictures in the overlay gallery */ keyboard_shortcuts: true, /* Set to false if you open forms inside prettyPhoto */ changepicturecallback: function(){}, /* Called everytime an item is shown/changed */ callback: function(){}, /* Called when prettyPhoto is closed */ ie6_fallback: true, markup: '
\
 
\
\
\
\
\
\
\
\
\
\
\
\ Expand \
\ next \ previous \
\
\
\
\ Previous \

0/0

\ Next \
\

\
{pp_social}
\ Close \
\
\
\
\
\
\
\
\
\
\
\
\
', gallery_markup: '', image_markup: '', flash_markup: '', quicktime_markup: '', iframe_markup: '', inline_markup: '
{content}
', custom_markup: '', social_tools: '' /* html or false to disable */ }, pp_settings); // Global variables accessible only by prettyPhoto var matchedObjects = this, percentBased = false, pp_dimensions, pp_open, // prettyPhoto container specific pp_contentHeight, pp_contentWidth, pp_containerHeight, pp_containerWidth, // Window size windowHeight = $(window).height(), windowWidth = $(window).width(), // Global elements pp_slideshow; doresize = true, scroll_pos = _get_scroll(); // Window/Keyboard events $(window).unbind('resize.prettyphoto').bind('resize.prettyphoto',function(){ _center_overlay(); _resize_overlay(); }); if(pp_settings.keyboard_shortcuts) { $(document).unbind('keydown.prettyphoto').bind('keydown.prettyphoto',function(e){ if(typeof $pp_pic_holder != 'undefined'){ if($pp_pic_holder.is(':visible')){ switch(e.keyCode){ case 37: $.prettyPhoto.changePage('previous'); e.preventDefault(); break; case 39: $.prettyPhoto.changePage('next'); e.preventDefault(); break; case 27: if(!settings.modal) $.prettyPhoto.close(); e.preventDefault(); break; }; // return false; }; }; }); }; /** * Initialize prettyPhoto. */ $.prettyPhoto.initialize = function() { settings = pp_settings; if(settings.theme == 'pp_default') settings.horizontal_padding = 16; // Find out if the picture is part of a set theRel = $(this).attr(settings.hook); galleryRegExp = /\[(?:.*)\]/; isSet = (galleryRegExp.exec(theRel)) ? true : false; // Put the SRCs, TITLEs, ALTs into an array. pp_images = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return $(n).attr('href'); }) : $.makeArray($(this).attr('href')); pp_titles = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).find('img').attr('alt')) ? $(n).find('img').attr('alt') : ""; }) : $.makeArray($(this).find('img').attr('alt')); pp_descriptions = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).attr('title')) ? $(n).attr('title') : ""; }) : $.makeArray($(this).attr('title')); if(pp_images.length > settings.overlay_gallery_max) settings.overlay_gallery = false; set_position = jQuery.inArray($(this).attr('href'), pp_images); // Define where in the array the clicked item is positionned rel_index = (isSet) ? set_position : $("a["+settings.hook+"^='"+theRel+"']").index($(this)); _build_overlay(this); // Build the overlay {this} being the caller if(settings.allow_resize) $(window).bind('scroll.prettyphoto',function(){ _center_overlay(); }); $.prettyPhoto.open(); return false; } /** * Opens the prettyPhoto modal box. * @param image {String,Array} Full path to the image to be open, can also be an array containing full images paths. * @param title {String,Array} The title to be displayed with the picture, can also be an array containing all the titles. * @param description {String,Array} The description to be displayed with the picture, can also be an array containing all the descriptions. */ $.prettyPhoto.open = function(event) { if(typeof settings == "undefined"){ // Means it's an API call, need to manually get the settings and set the variables settings = pp_settings; pp_images = $.makeArray(arguments[0]); pp_titles = (arguments[1]) ? $.makeArray(arguments[1]) : $.makeArray(""); pp_descriptions = (arguments[2]) ? $.makeArray(arguments[2]) : $.makeArray(""); isSet = (pp_images.length > 1) ? true : false; set_position = (arguments[3])? arguments[3]: 0; _build_overlay(event.target); // Build the overlay {this} being the caller } if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','hidden'); // Hide the flash _checkPosition($(pp_images).size()); // Hide the next/previous links if on first or last images. $('.pp_loaderIcon').show(); if(settings.deeplinking) setHashtag(); // Rebuild Facebook Like Button with updated href if(settings.social_tools){ facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href)); $pp_pic_holder.find('.pp_social').html(facebook_like_link); } // Fade the content in if($ppt.is(':hidden')) $ppt.css('opacity',0).show(); $pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity); // Display the current position $pp_pic_holder.find('.currentTextHolder').text((set_position+1) + settings.counter_separator_label + $(pp_images).size()); // Set the description if(typeof pp_descriptions[set_position] != 'undefined' && pp_descriptions[set_position] != ""){ $pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[set_position])); }else{ $pp_pic_holder.find('.pp_description').hide(); } // Get the dimensions movie_width = ( parseFloat(getParam('width',pp_images[set_position])) ) ? getParam('width',pp_images[set_position]) : settings.default_width.toString(); movie_height = ( parseFloat(getParam('height',pp_images[set_position])) ) ? getParam('height',pp_images[set_position]) : settings.default_height.toString(); // If the size is % based, calculate according to window dimensions percentBased=false; if(movie_height.indexOf('%') != -1) { movie_height = parseFloat(($(window).height() * parseFloat(movie_height) / 100) - 150); percentBased = true; } if(movie_width.indexOf('%') != -1) { movie_width = parseFloat(($(window).width() * parseFloat(movie_width) / 100) - 150); percentBased = true; } // Fade the holder $pp_pic_holder.fadeIn(function(){ // Set the title (settings.show_title && pp_titles[set_position] != "" && typeof pp_titles[set_position] != "undefined") ? $ppt.html(unescape(pp_titles[set_position])) : $ppt.html(' '); imgPreloader = ""; skipInjection = false; // Inject the proper content switch(_getFileType(pp_images[set_position])){ case 'image': imgPreloader = new Image(); // Preload the neighbour images nextImage = new Image(); if(isSet && set_position < $(pp_images).size() -1) nextImage.src = pp_images[set_position + 1]; prevImage = new Image(); if(isSet && pp_images[set_position - 1]) prevImage.src = pp_images[set_position - 1]; $pp_pic_holder.find('#pp_full_res')[0].innerHTML = settings.image_markup.replace(/{path}/g,pp_images[set_position]); imgPreloader.onload = function(){ // Fit item to viewport pp_dimensions = _fitToViewport(imgPreloader.width,imgPreloader.height); _showContent(); }; imgPreloader.onerror = function(){ alert('Image cannot be loaded. Make sure the path is correct and image exist.'); $.prettyPhoto.close(); }; imgPreloader.src = pp_images[set_position]; break; case 'youtube': pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport // Regular youtube link movie_id = getParam('v',pp_images[set_position]); // youtu.be link if(movie_id == ""){ movie_id = pp_images[set_position].split('youtu.be/'); movie_id = movie_id[1]; if(movie_id.indexOf('?') > 0) movie_id = movie_id.substr(0,movie_id.indexOf('?')); // Strip anything after the ? if(movie_id.indexOf('&') > 0) movie_id = movie_id.substr(0,movie_id.indexOf('&')); // Strip anything after the & } movie = 'http://www.youtube.com/embed/'+movie_id; (getParam('rel',pp_images[set_position])) ? movie+="?rel="+getParam('rel',pp_images[set_position]) : movie+="?rel=1"; if(settings.autoplay) movie += "&autoplay=1"; toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie); break; case 'vimeo': pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport movie_id = pp_images[set_position]; var regExp = /http(s?):\/\/(www\.)?vimeo.com\/(\d+)/; var match = movie_id.match(regExp); movie = 'http://player.vimeo.com/video/'+ match[3] +'?title=0&byline=0&portrait=0'; if(settings.autoplay) movie += "&autoplay=1;"; vimeo_width = pp_dimensions['width'] + '/embed/?moog_width='+ pp_dimensions['width']; toInject = settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,movie); break; case 'quicktime': pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport pp_dimensions['height']+=15; pp_dimensions['contentHeight']+=15; pp_dimensions['containerHeight']+=15; // Add space for the control bar toInject = settings.quicktime_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay); break; case 'flash': pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport flash_vars = pp_images[set_position]; flash_vars = flash_vars.substring(pp_images[set_position].indexOf('flashvars') + 10,pp_images[set_position].length); filename = pp_images[set_position]; filename = filename.substring(0,filename.indexOf('?')); toInject = settings.flash_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+'?'+flash_vars); break; case 'iframe': pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport frame_url = pp_images[set_position]; frame_url = frame_url.substr(0,frame_url.indexOf('iframe')-1); toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,frame_url); break; case 'ajax': doresize = false; // Make sure the dimensions are not resized. pp_dimensions = _fitToViewport(movie_width,movie_height); doresize = true; // Reset the dimensions skipInjection = true; $.get(pp_images[set_position],function(responseHTML){ toInject = settings.inline_markup.replace(/{content}/g,responseHTML); $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject; _showContent(); }); break; case 'custom': pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport toInject = settings.custom_markup; break; case 'inline': // to get the item height clone it, apply default width, wrap it in the prettyPhoto containers , then delete myClone = $(pp_images[set_position]).clone().append('
').css({'width':settings.default_width}).wrapInner('
').appendTo($('body')).show(); doresize = false; // Make sure the dimensions are not resized. pp_dimensions = _fitToViewport($(myClone).width(),$(myClone).height()); doresize = true; // Reset the dimensions $(myClone).remove(); toInject = settings.inline_markup.replace(/{content}/g,$(pp_images[set_position]).html()); break; }; if(!imgPreloader && !skipInjection){ $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject; // Show content _showContent(); }; }); return false; }; /** * Change page in the prettyPhoto modal box * @param direction {String} Direction of the paging, previous or next. */ $.prettyPhoto.changePage = function(direction){ currentGalleryPage = 0; if(direction == 'previous') { set_position--; if (set_position < 0) set_position = $(pp_images).size()-1; }else if(direction == 'next'){ set_position++; if(set_position > $(pp_images).size()-1) set_position = 0; }else{ set_position=direction; }; rel_index = set_position; if(!doresize) doresize = true; // Allow the resizing of the images if(settings.allow_expand) { $('.pp_contract').removeClass('pp_contract').addClass('pp_expand'); } _hideContent(function(){ $.prettyPhoto.open(); }); }; /** * Change gallery page in the prettyPhoto modal box * @param direction {String} Direction of the paging, previous or next. */ $.prettyPhoto.changeGalleryPage = function(direction){ if(direction=='next'){ currentGalleryPage ++; if(currentGalleryPage > totalPage) currentGalleryPage = 0; }else if(direction=='previous'){ currentGalleryPage --; if(currentGalleryPage < 0) currentGalleryPage = totalPage; }else{ currentGalleryPage = direction; }; slide_speed = (direction == 'next' || direction == 'previous') ? settings.animation_speed : 0; slide_to = currentGalleryPage * (itemsPerPage * itemWidth); $pp_gallery.find('ul').animate({left:-slide_to},slide_speed); }; /** * Start the slideshow... */ $.prettyPhoto.startSlideshow = function(){ if(typeof pp_slideshow == 'undefined'){ $pp_pic_holder.find('.pp_play').unbind('click').removeClass('pp_play').addClass('pp_pause').click(function(){ $.prettyPhoto.stopSlideshow(); return false; }); pp_slideshow = setInterval($.prettyPhoto.startSlideshow,settings.slideshow); }else{ $.prettyPhoto.changePage('next'); }; } /** * Stop the slideshow... */ $.prettyPhoto.stopSlideshow = function(){ $pp_pic_holder.find('.pp_pause').unbind('click').removeClass('pp_pause').addClass('pp_play').click(function(){ $.prettyPhoto.startSlideshow(); return false; }); clearInterval(pp_slideshow); pp_slideshow=undefined; } /** * Closes prettyPhoto. */ $.prettyPhoto.close = function(){ if($pp_overlay.is(":animated")) return; $.prettyPhoto.stopSlideshow(); $pp_pic_holder.stop().find('object,embed').css('visibility','hidden'); $('div.pp_pic_holder,div.ppt,.pp_fade').fadeOut(settings.animation_speed,function(){ $(this).remove(); }); $pp_overlay.fadeOut(settings.animation_speed, function(){ if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','visible'); // Show the flash $(this).remove(); // No more need for the prettyPhoto markup $(window).unbind('scroll.prettyphoto'); clearHashtag(); settings.callback(); doresize = true; pp_open = false; delete settings; }); }; /** * Set the proper sizes on the containers and animate the content in. */ function _showContent(){ $('.pp_loaderIcon').hide(); // Calculate the opened top position of the pic holder projectedTop = scroll_pos['scrollTop'] + ((windowHeight/2) - (pp_dimensions['containerHeight']/2)); if(projectedTop < 0) projectedTop = 0; $ppt.fadeTo(settings.animation_speed,1); // Resize the content holder $pp_pic_holder.find('.pp_content') .animate({ height:pp_dimensions['contentHeight'], width:pp_dimensions['contentWidth'] },settings.animation_speed); // Resize picture the holder $pp_pic_holder.animate({ 'top': projectedTop, 'left': ((windowWidth/2) - (pp_dimensions['containerWidth']/2) < 0) ? 0 : (windowWidth/2) - (pp_dimensions['containerWidth']/2), width:pp_dimensions['containerWidth'] },settings.animation_speed,function(){ $pp_pic_holder.find('.pp_hoverContainer,#fullResImage').height(pp_dimensions['height']).width(pp_dimensions['width']); $pp_pic_holder.find('.pp_fade').fadeIn(settings.animation_speed); // Fade the new content // Show the nav if(isSet && _getFileType(pp_images[set_position])=="image") { $pp_pic_holder.find('.pp_hoverContainer').show(); }else{ $pp_pic_holder.find('.pp_hoverContainer').hide(); } if(settings.allow_expand) { if(pp_dimensions['resized']){ // Fade the resizing link if the image is resized $('a.pp_expand,a.pp_contract').show(); }else{ $('a.pp_expand').hide(); } } if(settings.autoplay_slideshow && !pp_slideshow && !pp_open) $.prettyPhoto.startSlideshow(); settings.changepicturecallback(); // Callback! pp_open = true; }); _insert_gallery(); pp_settings.ajaxcallback(); }; /** * Hide the content...DUH! */ function _hideContent(callback){ // Fade out the current picture $pp_pic_holder.find('#pp_full_res object,#pp_full_res embed').css('visibility','hidden'); $pp_pic_holder.find('.pp_fade').fadeOut(settings.animation_speed,function(){ $('.pp_loaderIcon').show(); callback(); }); }; /** * Check the item position in the gallery array, hide or show the navigation links * @param setCount {integer} The total number of items in the set */ function _checkPosition(setCount){ (setCount > 1) ? $('.pp_nav').show() : $('.pp_nav').hide(); // Hide the bottom nav if it's not a set. }; /** * Resize the item dimensions if it's bigger than the viewport * @param width {integer} Width of the item to be opened * @param height {integer} Height of the item to be opened * @return An array containin the "fitted" dimensions */ function _fitToViewport(width,height){ resized = false; _getDimensions(width,height); // Define them in case there's no resize needed imageWidth = width, imageHeight = height; if( ((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)) && doresize && settings.allow_resize && !percentBased) { resized = true, fitting = false; while (!fitting){ if((pp_containerWidth > windowWidth)){ imageWidth = (windowWidth - 200); imageHeight = (height/width) * imageWidth; }else if((pp_containerHeight > windowHeight)){ imageHeight = (windowHeight - 200); imageWidth = (width/height) * imageHeight; }else{ fitting = true; }; pp_containerHeight = imageHeight, pp_containerWidth = imageWidth; }; if((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)){ _fitToViewport(pp_containerWidth,pp_containerHeight) }; _getDimensions(imageWidth,imageHeight); }; return { width:Math.floor(imageWidth), height:Math.floor(imageHeight), containerHeight:Math.floor(pp_containerHeight), containerWidth:Math.floor(pp_containerWidth) + (settings.horizontal_padding * 2), contentHeight:Math.floor(pp_contentHeight), contentWidth:Math.floor(pp_contentWidth), resized:resized }; }; /** * Get the containers dimensions according to the item size * @param width {integer} Width of the item to be opened * @param height {integer} Height of the item to be opened */ function _getDimensions(width,height){ width = parseFloat(width); height = parseFloat(height); // Get the details height, to do so, I need to clone it since it's invisible $pp_details = $pp_pic_holder.find('.pp_details'); $pp_details.width(width); detailsHeight = parseFloat($pp_details.css('marginTop')) + parseFloat($pp_details.css('marginBottom')); $pp_details = $pp_details.clone().addClass(settings.theme).width(width).appendTo($('body')).css({ 'position':'absolute', 'top':-10000 }); detailsHeight += $pp_details.height(); detailsHeight = (detailsHeight <= 34) ? 36 : detailsHeight; // Min-height for the details $pp_details.remove(); // Get the titles height, to do so, I need to clone it since it's invisible $pp_title = $pp_pic_holder.find('.ppt'); $pp_title.width(width); titleHeight = parseFloat($pp_title.css('marginTop')) + parseFloat($pp_title.css('marginBottom')); $pp_title = $pp_title.clone().appendTo($('body')).css({ 'position':'absolute', 'top':-10000 }); titleHeight += $pp_title.height(); $pp_title.remove(); // Get the container size, to resize the holder to the right dimensions pp_contentHeight = height + detailsHeight; pp_contentWidth = width; pp_containerHeight = pp_contentHeight + titleHeight + $pp_pic_holder.find('.pp_top').height() + $pp_pic_holder.find('.pp_bottom').height(); pp_containerWidth = width; } function _getFileType(itemSrc){ if (itemSrc.match(/youtube\.com\/watch/i) || itemSrc.match(/youtu\.be/i)) { return 'youtube'; }else if (itemSrc.match(/vimeo\.com/i)) { return 'vimeo'; }else if(itemSrc.match(/\b.mov\b/i)){ return 'quicktime'; }else if(itemSrc.match(/\b.swf\b/i)){ return 'flash'; }else if(itemSrc.match(/\biframe=true\b/i)){ return 'iframe'; }else if(itemSrc.match(/\bajax=true\b/i)){ return 'ajax'; }else if(itemSrc.match(/\bcustom=true\b/i)){ return 'custom'; }else if(itemSrc.substr(0,1) == '#'){ return 'inline'; }else{ return 'image'; }; }; function _center_overlay(){ if(doresize && typeof $pp_pic_holder != 'undefined') { scroll_pos = _get_scroll(); contentHeight = $pp_pic_holder.height(), contentwidth = $pp_pic_holder.width(); projectedTop = (windowHeight/2) + scroll_pos['scrollTop'] - (contentHeight/2); if(projectedTop < 0) projectedTop = 0; if(contentHeight > windowHeight) return; $pp_pic_holder.css({ 'top': projectedTop, 'left': (windowWidth/2) + scroll_pos['scrollLeft'] - (contentwidth/2) }); }; }; function _get_scroll(){ if (self.pageYOffset) { return {scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset}; } else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict return {scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft}; } else if (document.body) {// all other Explorers return {scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft}; }; }; function _resize_overlay() { windowHeight = $(window).height(), windowWidth = $(window).width(); if(typeof $pp_overlay != "undefined") $pp_overlay.height($(document).height()).width(windowWidth); }; function _insert_gallery(){ if(isSet && settings.overlay_gallery && _getFileType(pp_images[set_position])=="image") { itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin. navWidth = (settings.theme == "facebook" || settings.theme == "pp_default") ? 50 : 30; // Define the arrow width depending on the theme itemsPerPage = Math.floor((pp_dimensions['containerWidth'] - 100 - navWidth) / itemWidth); itemsPerPage = (itemsPerPage < pp_images.length) ? itemsPerPage : pp_images.length; totalPage = Math.ceil(pp_images.length / itemsPerPage) - 1; // Hide the nav in the case there's no need for links if(totalPage == 0){ navWidth = 0; // No nav means no width! $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').hide(); }else{ $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').show(); }; galleryWidth = itemsPerPage * itemWidth; fullGalleryWidth = pp_images.length * itemWidth; // Set the proper width to the gallery items $pp_gallery .css('margin-left',-((galleryWidth/2) + (navWidth/2))) .find('div:first').width(galleryWidth+5) .find('ul').width(fullGalleryWidth) .find('li.selected').removeClass('selected'); goToPage = (Math.floor(set_position/itemsPerPage) < totalPage) ? Math.floor(set_position/itemsPerPage) : totalPage; $.prettyPhoto.changeGalleryPage(goToPage); $pp_gallery_li.filter(':eq('+set_position+')').addClass('selected'); }else{ $pp_pic_holder.find('.pp_content').unbind('mouseenter mouseleave'); // $pp_gallery.hide(); } } function _build_overlay(caller){ // Inject Social Tool markup into General markup if(settings.social_tools) facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href)); settings.markup = settings.markup.replace('{pp_social}',''); $('body').append(settings.markup); // Inject the markup $pp_pic_holder = $('.pp_pic_holder') , $ppt = $('.ppt'), $pp_overlay = $('div.pp_overlay'); // Set my global selectors // Inject the inline gallery! if(isSet && settings.overlay_gallery) { currentGalleryPage = 0; toInject = ""; for (var i=0; i < pp_images.length; i++) { if(!pp_images[i].match(/\b(jpg|jpeg|png|gif)\b/gi)){ classname = 'default'; img_src = ''; }else{ classname = ''; img_src = pp_images[i]; } toInject += "
  • "; }; toInject = settings.gallery_markup.replace(/{gallery}/g,toInject); $pp_pic_holder.find('#pp_full_res').after(toInject); $pp_gallery = $('.pp_pic_holder .pp_gallery'), $pp_gallery_li = $pp_gallery.find('li'); // Set the gallery selectors $pp_gallery.find('.pp_arrow_next').click(function(){ $.prettyPhoto.changeGalleryPage('next'); $.prettyPhoto.stopSlideshow(); return false; }); $pp_gallery.find('.pp_arrow_previous').click(function(){ $.prettyPhoto.changeGalleryPage('previous'); $.prettyPhoto.stopSlideshow(); return false; }); $pp_pic_holder.find('.pp_content').hover( function(){ $pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeIn(); }, function(){ $pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeOut(); }); itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin. $pp_gallery_li.each(function(i){ $(this) .find('a') .click(function(){ $.prettyPhoto.changePage(i); $.prettyPhoto.stopSlideshow(); return false; }); }); }; // Inject the play/pause if it's a slideshow if(settings.slideshow){ $pp_pic_holder.find('.pp_nav').prepend('Play') $pp_pic_holder.find('.pp_nav .pp_play').click(function(){ $.prettyPhoto.startSlideshow(); return false; }); } $pp_pic_holder.attr('class','pp_pic_holder ' + settings.theme); // Set the proper theme $pp_overlay .css({ 'opacity':0, 'height':$(document).height(), 'width':$(window).width() }) .bind('click',function(){ if(!settings.modal) $.prettyPhoto.close(); }); $('a.pp_close').bind('click',function(){ $.prettyPhoto.close(); return false; }); if(settings.allow_expand) { $('a.pp_expand').bind('click',function(e){ // Expand the image if($(this).hasClass('pp_expand')){ $(this).removeClass('pp_expand').addClass('pp_contract'); doresize = false; }else{ $(this).removeClass('pp_contract').addClass('pp_expand'); doresize = true; }; _hideContent(function(){ $.prettyPhoto.open(); }); return false; }); } $pp_pic_holder.find('.pp_previous, .pp_nav .pp_arrow_previous').bind('click',function(){ $.prettyPhoto.changePage('previous'); $.prettyPhoto.stopSlideshow(); return false; }); $pp_pic_holder.find('.pp_next, .pp_nav .pp_arrow_next').bind('click',function(){ $.prettyPhoto.changePage('next'); $.prettyPhoto.stopSlideshow(); return false; }); _center_overlay(); // Center it }; if(!pp_alreadyInitialized && getHashtag()){ pp_alreadyInitialized = true; // Grab the rel index to trigger the click on the correct element hashIndex = getHashtag(); hashRel = hashIndex; hashIndex = hashIndex.substring(hashIndex.indexOf('/')+1,hashIndex.length-1); hashRel = hashRel.substring(0,hashRel.indexOf('/')); // Little timeout to make sure all the prettyPhoto initialize scripts has been run. // Useful in the event the page contain several init scripts. setTimeout(function(){ $("a["+pp_settings.hook+"^='"+hashRel+"']:eq("+hashIndex+")").trigger('click'); },50); } return this.unbind('click.prettyphoto').bind('click.prettyphoto',$.prettyPhoto.initialize); // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once }; function getHashtag(){ var url = location.href; hashtag = (url.indexOf('#prettyPhoto') !== -1) ? decodeURI(url.substring(url.indexOf('#prettyPhoto')+1,url.length)) : false; if(hashtag){ hashtag = hashtag.replace(/<|>/g,''); } return hashtag; }; function setHashtag(){ if(typeof theRel == 'undefined') return; // theRel is set on normal calls, it's impossible to deeplink using the API location.hash = theRel + '/'+rel_index+'/'; }; function clearHashtag(){ if ( location.href.indexOf('#prettyPhoto') !== -1 ) location.hash = "prettyPhoto"; } function getParam(name,url){ name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( url ); return ( results == null ) ? "" : results[1]; } })(jQuery); var pp_alreadyInitialized = false; // Used for the deep linking to make sure not to call the same function several times.; // source --> https://herbifeet.com/wp-content/plugins/revslider/public/assets/js/jquery.themepunch.tools.min.js?ver=5.4.6.4 /******************************************** - THEMEPUNCH TOOLS Ver. 1.0 - Last Update of Tools 27.02.2015 *********************************************/ /* * @fileOverview TouchSwipe - jQuery Plugin * @version 1.6.9 * * @author Matt Bryson http://www.github.com/mattbryson * @see https://github.com/mattbryson/TouchSwipe-Jquery-Plugin * @see http://labs.skinkers.com/touchSwipe/ * @see http://plugins.jquery.com/project/touchSwipe * * Copyright (c) 2010 Matt Bryson * Dual licensed under the MIT or GPL Version 2 licenses. * */ (function(a){if(typeof define==="function"&&define.amd&&define.amd.jQuery){define(["jquery"],a)}else{a(jQuery)}}(function(f){var y="1.6.9",p="left",o="right",e="up",x="down",c="in",A="out",m="none",s="auto",l="swipe",t="pinch",B="tap",j="doubletap",b="longtap",z="hold",E="horizontal",u="vertical",i="all",r=10,g="start",k="move",h="end",q="cancel",a="ontouchstart" in window,v=window.navigator.msPointerEnabled&&!window.navigator.pointerEnabled,d=window.navigator.pointerEnabled||window.navigator.msPointerEnabled,C="TouchSwipe";var n={fingers:1,threshold:75,cancelThreshold:null,pinchThreshold:20,maxTimeThreshold:null,fingerReleaseThreshold:250,longTapThreshold:500,doubleTapThreshold:200,swipe:null,swipeLeft:null,swipeRight:null,swipeUp:null,swipeDown:null,swipeStatus:null,pinchIn:null,pinchOut:null,pinchStatus:null,click:null,tap:null,doubleTap:null,longTap:null,hold:null,triggerOnTouchEnd:true,triggerOnTouchLeave:false,allowPageScroll:"auto",fallbackToMouseEvents:true,excludedElements:"label, button, input, select, textarea, a, .noSwipe",preventDefaultEvents:true};f.fn.swipetp=function(H){var G=f(this),F=G.data(C);if(F&&typeof H==="string"){if(F[H]){return F[H].apply(this,Array.prototype.slice.call(arguments,1))}else{f.error("Method "+H+" does not exist on jQuery.swipetp")}}else{if(!F&&(typeof H==="object"||!H)){return w.apply(this,arguments)}}return G};f.fn.swipetp.version=y;f.fn.swipetp.defaults=n;f.fn.swipetp.phases={PHASE_START:g,PHASE_MOVE:k,PHASE_END:h,PHASE_CANCEL:q};f.fn.swipetp.directions={LEFT:p,RIGHT:o,UP:e,DOWN:x,IN:c,OUT:A};f.fn.swipetp.pageScroll={NONE:m,HORIZONTAL:E,VERTICAL:u,AUTO:s};f.fn.swipetp.fingers={ONE:1,TWO:2,THREE:3,ALL:i};function w(F){if(F&&(F.allowPageScroll===undefined&&(F.swipe!==undefined||F.swipeStatus!==undefined))){F.allowPageScroll=m}if(F.click!==undefined&&F.tap===undefined){F.tap=F.click}if(!F){F={}}F=f.extend({},f.fn.swipetp.defaults,F);return this.each(function(){var H=f(this);var G=H.data(C);if(!G){G=new D(this,F);H.data(C,G)}})}function D(a5,aw){var aA=(a||d||!aw.fallbackToMouseEvents),K=aA?(d?(v?"MSPointerDown":"pointerdown"):"touchstart"):"mousedown",az=aA?(d?(v?"MSPointerMove":"pointermove"):"touchmove"):"mousemove",V=aA?(d?(v?"MSPointerUp":"pointerup"):"touchend"):"mouseup",T=aA?null:"mouseleave",aE=(d?(v?"MSPointerCancel":"pointercancel"):"touchcancel");var ah=0,aQ=null,ac=0,a2=0,a0=0,H=1,ar=0,aK=0,N=null;var aS=f(a5);var aa="start";var X=0;var aR=null;var U=0,a3=0,a6=0,ae=0,O=0;var aX=null,ag=null;try{aS.bind(K,aO);aS.bind(aE,ba)}catch(al){f.error("events not supported "+K+","+aE+" on jQuery.swipetp")}this.enable=function(){aS.bind(K,aO);aS.bind(aE,ba);return aS};this.disable=function(){aL();return aS};this.destroy=function(){aL();aS.data(C,null);aS=null};this.option=function(bd,bc){if(aw[bd]!==undefined){if(bc===undefined){return aw[bd]}else{aw[bd]=bc}}else{f.error("Option "+bd+" does not exist on jQuery.swipetp.options")}return null};function aO(be){if(aC()){return}if(f(be.target).closest(aw.excludedElements,aS).length>0){return}var bf=be.originalEvent?be.originalEvent:be;var bd,bg=bf.touches,bc=bg?bg[0]:bf;aa=g;if(bg){X=bg.length}else{be.preventDefault()}ah=0;aQ=null;aK=null;ac=0;a2=0;a0=0;H=1;ar=0;aR=ak();N=ab();S();if(!bg||(X===aw.fingers||aw.fingers===i)||aY()){aj(0,bc);U=au();if(X==2){aj(1,bg[1]);a2=a0=av(aR[0].start,aR[1].start)}if(aw.swipeStatus||aw.pinchStatus){bd=P(bf,aa)}}else{bd=false}if(bd===false){aa=q;P(bf,aa);return bd}else{if(aw.hold){ag=setTimeout(f.proxy(function(){aS.trigger("hold",[bf.target]);if(aw.hold){bd=aw.hold.call(aS,bf,bf.target)}},this),aw.longTapThreshold)}ap(true)}return null}function a4(bf){var bi=bf.originalEvent?bf.originalEvent:bf;if(aa===h||aa===q||an()){return}var be,bj=bi.touches,bd=bj?bj[0]:bi;var bg=aI(bd);a3=au();if(bj){X=bj.length}if(aw.hold){clearTimeout(ag)}aa=k;if(X==2){if(a2==0){aj(1,bj[1]);a2=a0=av(aR[0].start,aR[1].start)}else{aI(bj[1]);a0=av(aR[0].end,aR[1].end);aK=at(aR[0].end,aR[1].end)}H=a8(a2,a0);ar=Math.abs(a2-a0)}if((X===aw.fingers||aw.fingers===i)||!bj||aY()){aQ=aM(bg.start,bg.end);am(bf,aQ);ah=aT(bg.start,bg.end);ac=aN();aJ(aQ,ah);if(aw.swipeStatus||aw.pinchStatus){be=P(bi,aa)}if(!aw.triggerOnTouchEnd||aw.triggerOnTouchLeave){var bc=true;if(aw.triggerOnTouchLeave){var bh=aZ(this);bc=F(bg.end,bh)}if(!aw.triggerOnTouchEnd&&bc){aa=aD(k)}else{if(aw.triggerOnTouchLeave&&!bc){aa=aD(h)}}if(aa==q||aa==h){P(bi,aa)}}}else{aa=q;P(bi,aa)}if(be===false){aa=q;P(bi,aa)}}function M(bc){var bd=bc.originalEvent?bc.originalEvent:bc,be=bd.touches;if(be){if(be.length){G();return true}}if(an()){X=ae}a3=au();ac=aN();if(bb()||!ao()){aa=q;P(bd,aa)}else{if(aw.triggerOnTouchEnd||(aw.triggerOnTouchEnd==false&&aa===k)){bc.preventDefault();aa=h;P(bd,aa)}else{if(!aw.triggerOnTouchEnd&&a7()){aa=h;aG(bd,aa,B)}else{if(aa===k){aa=q;P(bd,aa)}}}}ap(false);return null}function ba(){X=0;a3=0;U=0;a2=0;a0=0;H=1;S();ap(false)}function L(bc){var bd=bc.originalEvent?bc.originalEvent:bc;if(aw.triggerOnTouchLeave){aa=aD(h);P(bd,aa)}}function aL(){aS.unbind(K,aO);aS.unbind(aE,ba);aS.unbind(az,a4);aS.unbind(V,M);if(T){aS.unbind(T,L)}ap(false)}function aD(bg){var bf=bg;var be=aB();var bd=ao();var bc=bb();if(!be||bc){bf=q}else{if(bd&&bg==k&&(!aw.triggerOnTouchEnd||aw.triggerOnTouchLeave)){bf=h}else{if(!bd&&bg==h&&aw.triggerOnTouchLeave){bf=q}}}return bf}function P(be,bc){var bd,bf=be.touches;if((J()||W())||(Q()||aY())){if(J()||W()){bd=aG(be,bc,l)}if((Q()||aY())&&bd!==false){bd=aG(be,bc,t)}}else{if(aH()&&bd!==false){bd=aG(be,bc,j)}else{if(aq()&&bd!==false){bd=aG(be,bc,b)}else{if(ai()&&bd!==false){bd=aG(be,bc,B)}}}}if(bc===q){ba(be)}if(bc===h){if(bf){if(!bf.length){ba(be)}}else{ba(be)}}return bd}function aG(bf,bc,be){var bd;if(be==l){aS.trigger("swipeStatus",[bc,aQ||null,ah||0,ac||0,X,aR]);if(aw.swipeStatus){bd=aw.swipeStatus.call(aS,bf,bc,aQ||null,ah||0,ac||0,X,aR);if(bd===false){return false}}if(bc==h&&aW()){aS.trigger("swipe",[aQ,ah,ac,X,aR]);if(aw.swipe){bd=aw.swipe.call(aS,bf,aQ,ah,ac,X,aR);if(bd===false){return false}}switch(aQ){case p:aS.trigger("swipeLeft",[aQ,ah,ac,X,aR]);if(aw.swipeLeft){bd=aw.swipeLeft.call(aS,bf,aQ,ah,ac,X,aR)}break;case o:aS.trigger("swipeRight",[aQ,ah,ac,X,aR]);if(aw.swipeRight){bd=aw.swipeRight.call(aS,bf,aQ,ah,ac,X,aR)}break;case e:aS.trigger("swipeUp",[aQ,ah,ac,X,aR]);if(aw.swipeUp){bd=aw.swipeUp.call(aS,bf,aQ,ah,ac,X,aR)}break;case x:aS.trigger("swipeDown",[aQ,ah,ac,X,aR]);if(aw.swipeDown){bd=aw.swipeDown.call(aS,bf,aQ,ah,ac,X,aR)}break}}}if(be==t){aS.trigger("pinchStatus",[bc,aK||null,ar||0,ac||0,X,H,aR]);if(aw.pinchStatus){bd=aw.pinchStatus.call(aS,bf,bc,aK||null,ar||0,ac||0,X,H,aR);if(bd===false){return false}}if(bc==h&&a9()){switch(aK){case c:aS.trigger("pinchIn",[aK||null,ar||0,ac||0,X,H,aR]);if(aw.pinchIn){bd=aw.pinchIn.call(aS,bf,aK||null,ar||0,ac||0,X,H,aR)}break;case A:aS.trigger("pinchOut",[aK||null,ar||0,ac||0,X,H,aR]);if(aw.pinchOut){bd=aw.pinchOut.call(aS,bf,aK||null,ar||0,ac||0,X,H,aR)}break}}}if(be==B){if(bc===q||bc===h){clearTimeout(aX);clearTimeout(ag);if(Z()&&!I()){O=au();aX=setTimeout(f.proxy(function(){O=null;aS.trigger("tap",[bf.target]);if(aw.tap){bd=aw.tap.call(aS,bf,bf.target)}},this),aw.doubleTapThreshold)}else{O=null;aS.trigger("tap",[bf.target]);if(aw.tap){bd=aw.tap.call(aS,bf,bf.target)}}}}else{if(be==j){if(bc===q||bc===h){clearTimeout(aX);O=null;aS.trigger("doubletap",[bf.target]);if(aw.doubleTap){bd=aw.doubleTap.call(aS,bf,bf.target)}}}else{if(be==b){if(bc===q||bc===h){clearTimeout(aX);O=null;aS.trigger("longtap",[bf.target]);if(aw.longTap){bd=aw.longTap.call(aS,bf,bf.target)}}}}}return bd}function ao(){var bc=true;if(aw.threshold!==null){bc=ah>=aw.threshold}return bc}function bb(){var bc=false;if(aw.cancelThreshold!==null&&aQ!==null){bc=(aU(aQ)-ah)>=aw.cancelThreshold}return bc}function af(){if(aw.pinchThreshold!==null){return ar>=aw.pinchThreshold}return true}function aB(){var bc;if(aw.maxTimeThreshold){if(ac>=aw.maxTimeThreshold){bc=false}else{bc=true}}else{bc=true}return bc}function am(bc,bd){if(aw.preventDefaultEvents===false){return}if(aw.allowPageScroll===m){bc.preventDefault()}else{var be=aw.allowPageScroll===s;switch(bd){case p:if((aw.swipeLeft&&be)||(!be&&aw.allowPageScroll!=E)){bc.preventDefault()}break;case o:if((aw.swipeRight&&be)||(!be&&aw.allowPageScroll!=E)){bc.preventDefault()}break;case e:if((aw.swipeUp&&be)||(!be&&aw.allowPageScroll!=u)){bc.preventDefault()}break;case x:if((aw.swipeDown&&be)||(!be&&aw.allowPageScroll!=u)){bc.preventDefault()}break}}}function a9(){var bd=aP();var bc=Y();var be=af();return bd&&bc&&be}function aY(){return !!(aw.pinchStatus||aw.pinchIn||aw.pinchOut)}function Q(){return !!(a9()&&aY())}function aW(){var bf=aB();var bh=ao();var be=aP();var bc=Y();var bd=bb();var bg=!bd&&bc&&be&&bh&&bf;return bg}function W(){return !!(aw.swipe||aw.swipeStatus||aw.swipeLeft||aw.swipeRight||aw.swipeUp||aw.swipeDown)}function J(){return !!(aW()&&W())}function aP(){return((X===aw.fingers||aw.fingers===i)||!a)}function Y(){return aR[0].end.x!==0}function a7(){return !!(aw.tap)}function Z(){return !!(aw.doubleTap)}function aV(){return !!(aw.longTap)}function R(){if(O==null){return false}var bc=au();return(Z()&&((bc-O)<=aw.doubleTapThreshold))}function I(){return R()}function ay(){return((X===1||!a)&&(isNaN(ah)||ahaw.longTapThreshold)&&(ah=0)){return p}else{if((be<=360)&&(be>=315)){return p}else{if((be>=135)&&(be<=225)){return o}else{if((be>45)&&(be<135)){return x}else{return e}}}}}function au(){var bc=new Date();return bc.getTime()}function aZ(bc){bc=f(bc);var be=bc.offset();var bd={left:be.left,right:be.left+bc.outerWidth(),top:be.top,bottom:be.top+bc.outerHeight()};return bd}function F(bc,bd){return(bc.x>bd.left&&bc.xbd.top&&bc.y-1;)(l=q[f[s]]||new r(f[s],[])).gsClass?(i[s]=l.gsClass,t--):j&&l.sc.push(this);if(0===t&&g){if(m=("com.greensock."+d).split("."),n=m.pop(),o=k(m.join("."))[n]=this.gsClass=g.apply(g,i),h)if(e[n]=c[n]=o,p="undefined"!=typeof module&&module.exports,!p&&"function"==typeof define&&define.amd)define((a.GreenSockAMDPath?a.GreenSockAMDPath+"/":"")+d.split(".").pop(),[],function(){return o});else if(p)if(d===b){module.exports=c[b]=o;for(s in c)o[s]=c[s]}else c[b]&&(c[b][n]=o);for(s=0;s-1;)for(f=i[j],e=d?t("easing."+f,null,!0):l.easing[f]||{},g=k.length;--g>-1;)h=k[g],w[f+"."+h]=w[h+f]=e[h]=a.getRatio?a:a[h]||new a};for(h=v.prototype,h._calcEnd=!1,h.getRatio=function(a){if(this._func)return this._params[0]=a,this._func.apply(null,this._params);var b=this._type,c=this._power,d=1===b?1-a:2===b?a:.5>a?2*a:2*(1-a);return 1===c?d*=d:2===c?d*=d*d:3===c?d*=d*d*d:4===c&&(d*=d*d*d*d),1===b?1-d:2===b?d:.5>a?d/2:1-d/2},f=["Linear","Quad","Cubic","Quart","Quint,Strong"],g=f.length;--g>-1;)h=f[g]+",Power"+g,x(new v(null,null,1,g),h,"easeOut",!0),x(new v(null,null,2,g),h,"easeIn"+(0===g?",easeNone":"")),x(new v(null,null,3,g),h,"easeInOut");w.linear=l.easing.Linear.easeIn,w.swing=l.easing.Quad.easeInOut;var y=t("events.EventDispatcher",function(a){this._listeners={},this._eventTarget=a||this});h=y.prototype,h.addEventListener=function(a,b,c,d,e){e=e||0;var f,g,h=this._listeners[a],k=0;for(this!==i||j||i.wake(),null==h&&(this._listeners[a]=h=[]),g=h.length;--g>-1;)f=h[g],f.c===b&&f.s===c?h.splice(g,1):0===k&&f.pr-1;)if(d[c].c===b)return void d.splice(c,1)},h.dispatchEvent=function(a){var b,c,d,e=this._listeners[a];if(e)for(b=e.length,b>1&&(e=e.slice(0)),c=this._eventTarget;--b>-1;)d=e[b],d&&(d.up?d.c.call(d.s||c,{type:a,target:c}):d.c.call(d.s||c))};var z=a.requestAnimationFrame,A=a.cancelAnimationFrame,B=Date.now||function(){return(new Date).getTime()},C=B();for(f=["ms","moz","webkit","o"],g=f.length;--g>-1&&!z;)z=a[f[g]+"RequestAnimationFrame"],A=a[f[g]+"CancelAnimationFrame"]||a[f[g]+"CancelRequestAnimationFrame"];t("Ticker",function(a,b){var c,e,f,g,h,k=this,l=B(),n=b!==!1&&z?"auto":!1,p=500,q=33,r="tick",s=function(a){var b,d,i=B()-C;i>p&&(l+=i-q),C+=i,k.time=(C-l)/1e3,b=k.time-h,(!c||b>0||a===!0)&&(k.frame++,h+=b+(b>=g?.004:g-b),d=!0),a!==!0&&(f=e(s)),d&&k.dispatchEvent(r)};y.call(k),k.time=k.frame=0,k.tick=function(){s(!0)},k.lagSmoothing=function(a,b){p=a||1/m,q=Math.min(b,p,0)},k.sleep=function(){null!=f&&(n&&A?A(f):clearTimeout(f),e=o,f=null,k===i&&(j=!1))},k.wake=function(a){null!==f?k.sleep():a?l+=-C+(C=B()):k.frame>10&&(C=B()-p+5),e=0===c?o:n&&z?z:function(a){return setTimeout(a,1e3*(h-k.time)+1|0)},k===i&&(j=!0),s(2)},k.fps=function(a){return arguments.length?(c=a,g=1/(c||60),h=this.time+g,void k.wake()):c},k.useRAF=function(a){return arguments.length?(k.sleep(),n=a,void k.fps(c)):n},k.fps(a),setTimeout(function(){"auto"===n&&k.frame<5&&"hidden"!==d.visibilityState&&k.useRAF(!1)},1500)}),h=l.Ticker.prototype=new l.events.EventDispatcher,h.constructor=l.Ticker;var D=t("core.Animation",function(a,b){if(this.vars=b=b||{},this._duration=this._totalDuration=a||0,this._delay=Number(b.delay)||0,this._timeScale=1,this._active=b.immediateRender===!0,this.data=b.data,this._reversed=b.reversed===!0,W){j||i.wake();var c=this.vars.useFrames?V:W;c.add(this,c._time),this.vars.paused&&this.paused(!0)}});i=D.ticker=new l.Ticker,h=D.prototype,h._dirty=h._gc=h._initted=h._paused=!1,h._totalTime=h._time=0,h._rawPrevTime=-1,h._next=h._last=h._onUpdate=h._timeline=h.timeline=null,h._paused=!1;var E=function(){j&&B()-C>2e3&&i.wake(),setTimeout(E,2e3)};E(),h.play=function(a,b){return null!=a&&this.seek(a,b),this.reversed(!1).paused(!1)},h.pause=function(a,b){return null!=a&&this.seek(a,b),this.paused(!0)},h.resume=function(a,b){return null!=a&&this.seek(a,b),this.paused(!1)},h.seek=function(a,b){return this.totalTime(Number(a),b!==!1)},h.restart=function(a,b){return this.reversed(!1).paused(!1).totalTime(a?-this._delay:0,b!==!1,!0)},h.reverse=function(a,b){return null!=a&&this.seek(a||this.totalDuration(),b),this.reversed(!0).paused(!1)},h.render=function(a,b,c){},h.invalidate=function(){return this._time=this._totalTime=0,this._initted=this._gc=!1,this._rawPrevTime=-1,(this._gc||!this.timeline)&&this._enabled(!0),this},h.isActive=function(){var a,b=this._timeline,c=this._startTime;return!b||!this._gc&&!this._paused&&b.isActive()&&(a=b.rawTime(!0))>=c&&a-1;)"{self}"===a[b]&&(c[b]=this);return c},h._callback=function(a){var b=this.vars,c=b[a],d=b[a+"Params"],e=b[a+"Scope"]||b.callbackScope||this,f=d?d.length:0;switch(f){case 0:c.call(e);break;case 1:c.call(e,d[0]);break;case 2:c.call(e,d[0],d[1]);break;default:c.apply(e,d)}},h.eventCallback=function(a,b,c,d){if("on"===(a||"").substr(0,2)){var e=this.vars;if(1===arguments.length)return e[a];null==b?delete e[a]:(e[a]=b,e[a+"Params"]=p(c)&&-1!==c.join("").indexOf("{self}")?this._swapSelfInParams(c):c,e[a+"Scope"]=d),"onUpdate"===a&&(this._onUpdate=b)}return this},h.delay=function(a){return arguments.length?(this._timeline.smoothChildTiming&&this.startTime(this._startTime+a-this._delay),this._delay=a,this):this._delay},h.duration=function(a){return arguments.length?(this._duration=this._totalDuration=a,this._uncache(!0),this._timeline.smoothChildTiming&&this._time>0&&this._timethis._duration?this._duration:a,b)):this._time},h.totalTime=function(a,b,c){if(j||i.wake(),!arguments.length)return this._totalTime;if(this._timeline){if(0>a&&!c&&(a+=this.totalDuration()),this._timeline.smoothChildTiming){this._dirty&&this.totalDuration();var d=this._totalDuration,e=this._timeline;if(a>d&&!c&&(a=d),this._startTime=(this._paused?this._pauseTime:e._time)-(this._reversed?d-a:a)/this._timeScale,e._dirty||this._uncache(!1),e._timeline)for(;e._timeline;)e._timeline._time!==(e._startTime+e._totalTime)/e._timeScale&&e.totalTime(e._totalTime,!0),e=e._timeline}this._gc&&this._enabled(!0,!1),(this._totalTime!==a||0===this._duration)&&(J.length&&Y(),this.render(a,b,!1),J.length&&Y())}return this},h.progress=h.totalProgress=function(a,b){var c=this.duration();return arguments.length?this.totalTime(c*a,b):c?this._time/c:this.ratio},h.startTime=function(a){return arguments.length?(a!==this._startTime&&(this._startTime=a,this.timeline&&this.timeline._sortChildren&&this.timeline.add(this,a-this._delay)),this):this._startTime},h.endTime=function(a){return this._startTime+(0!=a?this.totalDuration():this.duration())/this._timeScale},h.timeScale=function(a){if(!arguments.length)return this._timeScale;if(a=a||m,this._timeline&&this._timeline.smoothChildTiming){var b=this._pauseTime,c=b||0===b?b:this._timeline.totalTime();this._startTime=c-(c-this._startTime)*this._timeScale/a}return this._timeScale=a,this._uncache(!1)},h.reversed=function(a){return arguments.length?(a!=this._reversed&&(this._reversed=a,this.totalTime(this._timeline&&!this._timeline.smoothChildTiming?this.totalDuration()-this._totalTime:this._totalTime,!0)),this):this._reversed},h.paused=function(a){if(!arguments.length)return this._paused;var b,c,d=this._timeline;return a!=this._paused&&d&&(j||a||i.wake(),b=d.rawTime(),c=b-this._pauseTime,!a&&d.smoothChildTiming&&(this._startTime+=c,this._uncache(!1)),this._pauseTime=a?b:null,this._paused=a,this._active=this.isActive(),!a&&0!==c&&this._initted&&this.duration()&&(b=d.smoothChildTiming?this._totalTime:(b-this._startTime)/this._timeScale,this.render(b,b===this._totalTime,!0))),this._gc&&!a&&this._enabled(!0,!1),this};var F=t("core.SimpleTimeline",function(a){D.call(this,0,a),this.autoRemoveChildren=this.smoothChildTiming=!0});h=F.prototype=new D,h.constructor=F,h.kill()._gc=!1,h._first=h._last=h._recent=null,h._sortChildren=!1,h.add=h.insert=function(a,b,c,d){var e,f;if(a._startTime=Number(b||0)+a._delay,a._paused&&this!==a._timeline&&(a._pauseTime=a._startTime+(this.rawTime()-a._startTime)/a._timeScale),a.timeline&&a.timeline._remove(a,!0),a.timeline=a._timeline=this,a._gc&&a._enabled(!0,!0),e=this._last,this._sortChildren)for(f=a._startTime;e&&e._startTime>f;)e=e._prev;return e?(a._next=e._next,e._next=a):(a._next=this._first,this._first=a),a._next?a._next._prev=a:this._last=a,a._prev=e,this._recent=a,this._timeline&&this._uncache(!0),this},h._remove=function(a,b){return a.timeline===this&&(b||a._enabled(!1,!0),a._prev?a._prev._next=a._next:this._first===a&&(this._first=a._next),a._next?a._next._prev=a._prev:this._last===a&&(this._last=a._prev),a._next=a._prev=a.timeline=null,a===this._recent&&(this._recent=this._last),this._timeline&&this._uncache(!0)),this},h.render=function(a,b,c){var d,e=this._first;for(this._totalTime=this._time=this._rawPrevTime=a;e;)d=e._next,(e._active||a>=e._startTime&&!e._paused)&&(e._reversed?e.render((e._dirty?e.totalDuration():e._totalDuration)-(a-e._startTime)*e._timeScale,b,c):e.render((a-e._startTime)*e._timeScale,b,c)),e=d},h.rawTime=function(){return j||i.wake(),this._totalTime};var G=t("TweenLite",function(b,c,d){if(D.call(this,c,d),this.render=G.prototype.render,null==b)throw"Cannot tween a null target.";this.target=b="string"!=typeof b?b:G.selector(b)||b;var e,f,g,h=b.jquery||b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType),i=this.vars.overwrite;if(this._overwrite=i=null==i?U[G.defaultOverwrite]:"number"==typeof i?i>>0:U[i],(h||b instanceof Array||b.push&&p(b))&&"number"!=typeof b[0])for(this._targets=g=n(b),this._propLookup=[],this._siblings=[],e=0;e1&&_(f,this,null,1,this._siblings[e])):(f=g[e--]=G.selector(f),"string"==typeof f&&g.splice(e+1,1)):g.splice(e--,1);else this._propLookup={},this._siblings=Z(b,this,!1),1===i&&this._siblings.length>1&&_(b,this,null,1,this._siblings);(this.vars.immediateRender||0===c&&0===this._delay&&this.vars.immediateRender!==!1)&&(this._time=-m,this.render(Math.min(0,-this._delay)))},!0),H=function(b){return b&&b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType)},I=function(a,b){var c,d={};for(c in a)T[c]||c in b&&"transform"!==c&&"x"!==c&&"y"!==c&&"width"!==c&&"height"!==c&&"className"!==c&&"border"!==c||!(!Q[c]||Q[c]&&Q[c]._autoCSS)||(d[c]=a[c],delete a[c]);a.css=d};h=G.prototype=new D,h.constructor=G,h.kill()._gc=!1,h.ratio=0,h._firstPT=h._targets=h._overwrittenProps=h._startAt=null,h._notifyPluginsOfEnabled=h._lazy=!1,G.version="1.19.1",G.defaultEase=h._ease=new v(null,null,1,1),G.defaultOverwrite="auto",G.ticker=i,G.autoSleep=120,G.lagSmoothing=function(a,b){i.lagSmoothing(a,b)},G.selector=a.$||a.jQuery||function(b){var c=a.$||a.jQuery;return c?(G.selector=c,c(b)):"undefined"==typeof d?b:d.querySelectorAll?d.querySelectorAll(b):d.getElementById("#"===b.charAt(0)?b.substr(1):b)};var J=[],K={},L=/(?:(-|-=|\+=)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,M=function(a){for(var b,c=this._firstPT,d=1e-6;c;)b=c.blob?1===a?this.end:a?this.join(""):this.start:c.c*a+c.s,c.m?b=c.m(b,this._target||c.t):d>b&&b>-d&&!c.blob&&(b=0),c.f?c.fp?c.t[c.p](c.fp,b):c.t[c.p](b):c.t[c.p]=b,c=c._next},N=function(a,b,c,d){var e,f,g,h,i,j,k,l=[],m=0,n="",o=0;for(l.start=a,l.end=b,a=l[0]=a+"",b=l[1]=b+"",c&&(c(l),a=l[0],b=l[1]),l.length=0,e=a.match(L)||[],f=b.match(L)||[],d&&(d._next=null,d.blob=1,l._firstPT=l._applyPT=d),i=f.length,h=0;i>h;h++)k=f[h],j=b.substr(m,b.indexOf(k,m)-m),n+=j||!h?j:",",m+=j.length,o?o=(o+1)%5:"rgba("===j.substr(-5)&&(o=1),k===e[h]||e.length<=h?n+=k:(n&&(l.push(n),n=""),g=parseFloat(e[h]),l.push(g),l._firstPT={_next:l._firstPT,t:l,p:l.length-1,s:g,c:("="===k.charAt(1)?parseInt(k.charAt(0)+"1",10)*parseFloat(k.substr(2)):parseFloat(k)-g)||0,f:0,m:o&&4>o?Math.round:0}),m+=k.length;return n+=b.substr(m),n&&l.push(n),l.setRatio=M,l},O=function(a,b,c,d,e,f,g,h,i){"function"==typeof d&&(d=d(i||0,a));var j,k=typeof a[b],l="function"!==k?"":b.indexOf("set")||"function"!=typeof a["get"+b.substr(3)]?b:"get"+b.substr(3),m="get"!==c?c:l?g?a[l](g):a[l]():a[b],n="string"==typeof d&&"="===d.charAt(1),o={t:a,p:b,s:m,f:"function"===k,pg:0,n:e||b,m:f?"function"==typeof f?f:Math.round:0,pr:0,c:n?parseInt(d.charAt(0)+"1",10)*parseFloat(d.substr(2)):parseFloat(d)-m||0};return("number"!=typeof m||"number"!=typeof d&&!n)&&(g||isNaN(m)||!n&&isNaN(d)||"boolean"==typeof m||"boolean"==typeof d?(o.fp=g,j=N(m,n?o.s+o.c:d,h||G.defaultStringFilter,o),o={t:j,p:"setRatio",s:0,c:1,f:2,pg:0,n:e||b,pr:0,m:0}):(o.s=parseFloat(m),n||(o.c=parseFloat(d)-o.s||0))),o.c?((o._next=this._firstPT)&&(o._next._prev=o),this._firstPT=o,o):void 0},P=G._internals={isArray:p,isSelector:H,lazyTweens:J,blobDif:N},Q=G._plugins={},R=P.tweenLookup={},S=0,T=P.reservedProps={ease:1,delay:1,overwrite:1,onComplete:1,onCompleteParams:1,onCompleteScope:1,useFrames:1,runBackwards:1,startAt:1,onUpdate:1,onUpdateParams:1,onUpdateScope:1,onStart:1,onStartParams:1,onStartScope:1,onReverseComplete:1,onReverseCompleteParams:1,onReverseCompleteScope:1,onRepeat:1,onRepeatParams:1,onRepeatScope:1,easeParams:1,yoyo:1,immediateRender:1,repeat:1,repeatDelay:1,data:1,paused:1,reversed:1,autoCSS:1,lazy:1,onOverwrite:1,callbackScope:1,stringFilter:1,id:1},U={none:0,all:1,auto:2,concurrent:3,allOnStart:4,preexisting:5,"true":1,"false":0},V=D._rootFramesTimeline=new F,W=D._rootTimeline=new F,X=30,Y=P.lazyRender=function(){var a,b=J.length;for(K={};--b>-1;)a=J[b],a&&a._lazy!==!1&&(a.render(a._lazy[0],a._lazy[1],!0),a._lazy=!1);J.length=0};W._startTime=i.time,V._startTime=i.frame,W._active=V._active=!0,setTimeout(Y,1),D._updateRoot=G.render=function(){var a,b,c;if(J.length&&Y(),W.render((i.time-W._startTime)*W._timeScale,!1,!1),V.render((i.frame-V._startTime)*V._timeScale,!1,!1),J.length&&Y(),i.frame>=X){X=i.frame+(parseInt(G.autoSleep,10)||120);for(c in R){for(b=R[c].tweens,a=b.length;--a>-1;)b[a]._gc&&b.splice(a,1);0===b.length&&delete R[c]}if(c=W._first,(!c||c._paused)&&G.autoSleep&&!V._first&&1===i._listeners.tick.length){for(;c&&c._paused;)c=c._next;c||i.sleep()}}},i.addEventListener("tick",D._updateRoot);var Z=function(a,b,c){var d,e,f=a._gsTweenID;if(R[f||(a._gsTweenID=f="t"+S++)]||(R[f]={target:a,tweens:[]}),b&&(d=R[f].tweens,d[e=d.length]=b,c))for(;--e>-1;)d[e]===b&&d.splice(e,1);return R[f].tweens},$=function(a,b,c,d){var e,f,g=a.vars.onOverwrite;return g&&(e=g(a,b,c,d)),g=G.onOverwrite,g&&(f=g(a,b,c,d)),e!==!1&&f!==!1},_=function(a,b,c,d,e){var f,g,h,i;if(1===d||d>=4){for(i=e.length,f=0;i>f;f++)if((h=e[f])!==b)h._gc||h._kill(null,a,b)&&(g=!0);else if(5===d)break;return g}var j,k=b._startTime+m,l=[],n=0,o=0===b._duration;for(f=e.length;--f>-1;)(h=e[f])===b||h._gc||h._paused||(h._timeline!==b._timeline?(j=j||aa(b,0,o),0===aa(h,j,o)&&(l[n++]=h)):h._startTime<=k&&h._startTime+h.totalDuration()/h._timeScale>k&&((o||!h._initted)&&k-h._startTime<=2e-10||(l[n++]=h)));for(f=n;--f>-1;)if(h=l[f],2===d&&h._kill(c,a,b)&&(g=!0),2!==d||!h._firstPT&&h._initted){if(2!==d&&!$(h,b))continue;h._enabled(!1,!1)&&(g=!0)}return g},aa=function(a,b,c){for(var d=a._timeline,e=d._timeScale,f=a._startTime;d._timeline;){if(f+=d._startTime,e*=d._timeScale,d._paused)return-100;d=d._timeline}return f/=e,f>b?f-b:c&&f===b||!a._initted&&2*m>f-b?m:(f+=a.totalDuration()/a._timeScale/e)>b+m?0:f-b-m};h._init=function(){var a,b,c,d,e,f,g=this.vars,h=this._overwrittenProps,i=this._duration,j=!!g.immediateRender,k=g.ease;if(g.startAt){this._startAt&&(this._startAt.render(-1,!0),this._startAt.kill()),e={};for(d in g.startAt)e[d]=g.startAt[d];if(e.overwrite=!1,e.immediateRender=!0,e.lazy=j&&g.lazy!==!1,e.startAt=e.delay=null,this._startAt=G.to(this.target,0,e),j)if(this._time>0)this._startAt=null;else if(0!==i)return}else if(g.runBackwards&&0!==i)if(this._startAt)this._startAt.render(-1,!0),this._startAt.kill(),this._startAt=null;else{0!==this._time&&(j=!1),c={};for(d in g)T[d]&&"autoCSS"!==d||(c[d]=g[d]);if(c.overwrite=0,c.data="isFromStart",c.lazy=j&&g.lazy!==!1,c.immediateRender=j,this._startAt=G.to(this.target,0,c),j){if(0===this._time)return}else this._startAt._init(),this._startAt._enabled(!1),this.vars.immediateRender&&(this._startAt=null)}if(this._ease=k=k?k instanceof v?k:"function"==typeof k?new v(k,g.easeParams):w[k]||G.defaultEase:G.defaultEase,g.easeParams instanceof Array&&k.config&&(this._ease=k.config.apply(k,g.easeParams)),this._easeType=this._ease._type,this._easePower=this._ease._power,this._firstPT=null,this._targets)for(f=this._targets.length,a=0;f>a;a++)this._initProps(this._targets[a],this._propLookup[a]={},this._siblings[a],h?h[a]:null,a)&&(b=!0);else b=this._initProps(this.target,this._propLookup,this._siblings,h,0);if(b&&G._onPluginEvent("_onInitAllProps",this),h&&(this._firstPT||"function"!=typeof this.target&&this._enabled(!1,!1)),g.runBackwards)for(c=this._firstPT;c;)c.s+=c.c,c.c=-c.c,c=c._next;this._onUpdate=g.onUpdate,this._initted=!0},h._initProps=function(b,c,d,e,f){var g,h,i,j,k,l;if(null==b)return!1;K[b._gsTweenID]&&Y(),this.vars.css||b.style&&b!==a&&b.nodeType&&Q.css&&this.vars.autoCSS!==!1&&I(this.vars,b);for(g in this.vars)if(l=this.vars[g],T[g])l&&(l instanceof Array||l.push&&p(l))&&-1!==l.join("").indexOf("{self}")&&(this.vars[g]=l=this._swapSelfInParams(l,this));else if(Q[g]&&(j=new Q[g])._onInitTween(b,this.vars[g],this,f)){for(this._firstPT=k={_next:this._firstPT,t:j,p:"setRatio",s:0,c:1,f:1,n:g,pg:1,pr:j._priority,m:0},h=j._overwriteProps.length;--h>-1;)c[j._overwriteProps[h]]=this._firstPT;(j._priority||j._onInitAllProps)&&(i=!0),(j._onDisable||j._onEnable)&&(this._notifyPluginsOfEnabled=!0),k._next&&(k._next._prev=k)}else c[g]=O.call(this,b,g,"get",l,g,0,null,this.vars.stringFilter,f);return e&&this._kill(e,b)?this._initProps(b,c,d,e,f):this._overwrite>1&&this._firstPT&&d.length>1&&_(b,this,c,this._overwrite,d)?(this._kill(c,b),this._initProps(b,c,d,e,f)):(this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration)&&(K[b._gsTweenID]=!0),i)},h.render=function(a,b,c){var d,e,f,g,h=this._time,i=this._duration,j=this._rawPrevTime;if(a>=i-1e-7&&a>=0)this._totalTime=this._time=i,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1,this._reversed||(d=!0,e="onComplete",c=c||this._timeline.autoRemoveChildren),0===i&&(this._initted||!this.vars.lazy||c)&&(this._startTime===this._timeline._duration&&(a=0),(0>j||0>=a&&a>=-1e-7||j===m&&"isPause"!==this.data)&&j!==a&&(c=!0,j>m&&(e="onReverseComplete")),this._rawPrevTime=g=!b||a||j===a?a:m);else if(1e-7>a)this._totalTime=this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==h||0===i&&j>0)&&(e="onReverseComplete",d=this._reversed),0>a&&(this._active=!1,0===i&&(this._initted||!this.vars.lazy||c)&&(j>=0&&(j!==m||"isPause"!==this.data)&&(c=!0),this._rawPrevTime=g=!b||a||j===a?a:m)),this._initted||(c=!0);else if(this._totalTime=this._time=a,this._easeType){var k=a/i,l=this._easeType,n=this._easePower;(1===l||3===l&&k>=.5)&&(k=1-k),3===l&&(k*=2),1===n?k*=k:2===n?k*=k*k:3===n?k*=k*k*k:4===n&&(k*=k*k*k*k),1===l?this.ratio=1-k:2===l?this.ratio=k:.5>a/i?this.ratio=k/2:this.ratio=1-k/2}else this.ratio=this._ease.getRatio(a/i);if(this._time!==h||c){if(!this._initted){if(this._init(),!this._initted||this._gc)return;if(!c&&this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration))return this._time=this._totalTime=h,this._rawPrevTime=j,J.push(this),void(this._lazy=[a,b]);this._time&&!d?this.ratio=this._ease.getRatio(this._time/i):d&&this._ease._calcEnd&&(this.ratio=this._ease.getRatio(0===this._time?0:1))}for(this._lazy!==!1&&(this._lazy=!1),this._active||!this._paused&&this._time!==h&&a>=0&&(this._active=!0),0===h&&(this._startAt&&(a>=0?this._startAt.render(a,b,c):e||(e="_dummyGS")),this.vars.onStart&&(0!==this._time||0===i)&&(b||this._callback("onStart"))),f=this._firstPT;f;)f.f?f.t[f.p](f.c*this.ratio+f.s):f.t[f.p]=f.c*this.ratio+f.s,f=f._next;this._onUpdate&&(0>a&&this._startAt&&a!==-1e-4&&this._startAt.render(a,b,c),b||(this._time!==h||d||c)&&this._callback("onUpdate")),e&&(!this._gc||c)&&(0>a&&this._startAt&&!this._onUpdate&&a!==-1e-4&&this._startAt.render(a,b,c),d&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[e]&&this._callback(e),0===i&&this._rawPrevTime===m&&g!==m&&(this._rawPrevTime=0))}},h._kill=function(a,b,c){if("all"===a&&(a=null),null==a&&(null==b||b===this.target))return this._lazy=!1,this._enabled(!1,!1);b="string"!=typeof b?b||this._targets||this.target:G.selector(b)||b;var d,e,f,g,h,i,j,k,l,m=c&&this._time&&c._startTime===this._startTime&&this._timeline===c._timeline;if((p(b)||H(b))&&"number"!=typeof b[0])for(d=b.length;--d>-1;)this._kill(a,b[d],c)&&(i=!0);else{if(this._targets){for(d=this._targets.length;--d>-1;)if(b===this._targets[d]){h=this._propLookup[d]||{},this._overwrittenProps=this._overwrittenProps||[],e=this._overwrittenProps[d]=a?this._overwrittenProps[d]||{}:"all";break}}else{if(b!==this.target)return!1;h=this._propLookup,e=this._overwrittenProps=a?this._overwrittenProps||{}:"all"}if(h){if(j=a||h,k=a!==e&&"all"!==e&&a!==h&&("object"!=typeof a||!a._tempKill),c&&(G.onOverwrite||this.vars.onOverwrite)){for(f in j)h[f]&&(l||(l=[]),l.push(f));if((l||!a)&&!$(this,c,b,l))return!1}for(f in j)(g=h[f])&&(m&&(g.f?g.t[g.p](g.s):g.t[g.p]=g.s,i=!0),g.pg&&g.t._kill(j)&&(i=!0),g.pg&&0!==g.t._overwriteProps.length||(g._prev?g._prev._next=g._next:g===this._firstPT&&(this._firstPT=g._next),g._next&&(g._next._prev=g._prev),g._next=g._prev=null),delete h[f]),k&&(e[f]=1);!this._firstPT&&this._initted&&this._enabled(!1,!1)}}return i},h.invalidate=function(){return this._notifyPluginsOfEnabled&&G._onPluginEvent("_onDisable",this),this._firstPT=this._overwrittenProps=this._startAt=this._onUpdate=null,this._notifyPluginsOfEnabled=this._active=this._lazy=!1,this._propLookup=this._targets?{}:[],D.prototype.invalidate.call(this),this.vars.immediateRender&&(this._time=-m,this.render(Math.min(0,-this._delay))),this},h._enabled=function(a,b){if(j||i.wake(),a&&this._gc){var c,d=this._targets;if(d)for(c=d.length;--c>-1;)this._siblings[c]=Z(d[c],this,!0);else this._siblings=Z(this.target,this,!0)}return D.prototype._enabled.call(this,a,b),this._notifyPluginsOfEnabled&&this._firstPT?G._onPluginEvent(a?"_onEnable":"_onDisable",this):!1},G.to=function(a,b,c){return new G(a,b,c)},G.from=function(a,b,c){return c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,new G(a,b,c)},G.fromTo=function(a,b,c,d){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,new G(a,b,d)},G.delayedCall=function(a,b,c,d,e){return new G(b,0,{delay:a,onComplete:b,onCompleteParams:c,callbackScope:d,onReverseComplete:b,onReverseCompleteParams:c,immediateRender:!1,lazy:!1,useFrames:e,overwrite:0})},G.set=function(a,b){return new G(a,0,b)},G.getTweensOf=function(a,b){if(null==a)return[];a="string"!=typeof a?a:G.selector(a)||a;var c,d,e,f;if((p(a)||H(a))&&"number"!=typeof a[0]){for(c=a.length,d=[];--c>-1;)d=d.concat(G.getTweensOf(a[c],b));for(c=d.length;--c>-1;)for(f=d[c],e=c;--e>-1;)f===d[e]&&d.splice(c,1)}else for(d=Z(a).concat(),c=d.length;--c>-1;)(d[c]._gc||b&&!d[c].isActive())&&d.splice(c,1);return d},G.killTweensOf=G.killDelayedCallsTo=function(a,b,c){"object"==typeof b&&(c=b,b=!1);for(var d=G.getTweensOf(a,b),e=d.length;--e>-1;)d[e]._kill(c,a)};var ba=t("plugins.TweenPlugin",function(a,b){this._overwriteProps=(a||"").split(","),this._propName=this._overwriteProps[0],this._priority=b||0,this._super=ba.prototype},!0);if(h=ba.prototype,ba.version="1.19.0",ba.API=2,h._firstPT=null,h._addTween=O,h.setRatio=M,h._kill=function(a){var b,c=this._overwriteProps,d=this._firstPT;if(null!=a[this._propName])this._overwriteProps=[];else for(b=c.length;--b>-1;)null!=a[c[b]]&&c.splice(b,1);for(;d;)null!=a[d.n]&&(d._next&&(d._next._prev=d._prev),d._prev?(d._prev._next=d._next,d._prev=null):this._firstPT===d&&(this._firstPT=d._next)),d=d._next;return!1},h._mod=h._roundProps=function(a){for(var b,c=this._firstPT;c;)b=a[this._propName]||null!=c.n&&a[c.n.split(this._propName+"_").join("")],b&&"function"==typeof b&&(2===c.f?c.t._applyPT.m=b:c.m=b),c=c._next},G._onPluginEvent=function(a,b){var c,d,e,f,g,h=b._firstPT;if("_onInitAllProps"===a){for(;h;){for(g=h._next,d=e;d&&d.pr>h.pr;)d=d._next;(h._prev=d?d._prev:f)?h._prev._next=h:e=h,(h._next=d)?d._prev=h:f=h,h=g}h=b._firstPT=e}for(;h;)h.pg&&"function"==typeof h.t[a]&&h.t[a]()&&(c=!0),h=h._next;return c},ba.activate=function(a){for(var b=a.length;--b>-1;)a[b].API===ba.API&&(Q[(new a[b])._propName]=a[b]);return!0},s.plugin=function(a){if(!(a&&a.propName&&a.init&&a.API))throw"illegal plugin definition.";var b,c=a.propName,d=a.priority||0,e=a.overwriteProps,f={init:"_onInitTween",set:"setRatio",kill:"_kill",round:"_mod",mod:"_mod",initAll:"_onInitAllProps"},g=t("plugins."+c.charAt(0).toUpperCase()+c.substr(1)+"Plugin",function(){ba.call(this,c,d),this._overwriteProps=e||[]},a.global===!0),h=g.prototype=new ba(c);h.constructor=g,g.API=a.API;for(b in f)"function"==typeof a[b]&&(h[f[b]]=a[b]);return g.version=a.version,ba.activate([g]),g},f=a._gsQueue){for(g=0;gt._rawPrevTime||0===t._rawPrevTime&&a._reversed,_=l?0:r,f=l?r:0;if(e||!this._forcingPlayhead){for(a.pause(h),n=t._prev;n&&n._startTime===h;)n._rawPrevTime=f,n=n._prev;for(n=t._next;n&&n._startTime===h;)n._rawPrevTime=_,n=n._next;e&&e.apply(s||a.vars.callbackScope||a,i||u),(this._forcingPlayhead||!a._paused)&&a.seek(o)}},m=function(t){var e,i=[],s=t.length;for(e=0;e!==s;i.push(t[e++]));return i},d=s.prototype=new e;return s.version="1.17.0",d.constructor=s,d.kill()._gc=d._forcingPlayhead=!1,d.to=function(t,e,s,r){var n=s.repeat&&f.TweenMax||i;return e?this.add(new n(t,e,s),r):this.set(t,s,r)},d.from=function(t,e,s,r){return this.add((s.repeat&&f.TweenMax||i).from(t,e,s),r)},d.fromTo=function(t,e,s,r,n){var a=r.repeat&&f.TweenMax||i;return e?this.add(a.fromTo(t,e,s,r),n):this.set(t,r,n)},d.staggerTo=function(t,e,r,n,a,h,l,_){var u,f=new s({onComplete:h,onCompleteParams:l,callbackScope:_,smoothChildTiming:this.smoothChildTiming});for("string"==typeof t&&(t=i.selector(t)||t),t=t||[],o(t)&&(t=m(t)),n=n||0,0>n&&(t=m(t),t.reverse(),n*=-1),u=0;t.length>u;u++)r.startAt&&(r.startAt=c(r.startAt)),f.to(t[u],e,c(r),u*n);return this.add(f,a)},d.staggerFrom=function(t,e,i,s,r,n,a,o){return i.immediateRender=0!=i.immediateRender,i.runBackwards=!0,this.staggerTo(t,e,i,s,r,n,a,o)},d.staggerFromTo=function(t,e,i,s,r,n,a,o,h){return s.startAt=i,s.immediateRender=0!=s.immediateRender&&0!=i.immediateRender,this.staggerTo(t,e,s,r,n,a,o,h)},d.call=function(t,e,s,r){return this.add(i.delayedCall(0,t,e,s),r)},d.set=function(t,e,s){return s=this._parseTimeOrLabel(s,0,!0),null==e.immediateRender&&(e.immediateRender=s===this._time&&!this._paused),this.add(new i(t,0,e),s)},s.exportRoot=function(t,e){t=t||{},null==t.smoothChildTiming&&(t.smoothChildTiming=!0);var r,n,a=new s(t),o=a._timeline;for(null==e&&(e=!0),o._remove(a,!0),a._startTime=0,a._rawPrevTime=a._time=a._totalTime=o._time,r=o._first;r;)n=r._next,e&&r instanceof i&&r.target===r.vars.onComplete||a.add(r,r._startTime-r._delay),r=n;return o.add(a,0),a},d.add=function(r,n,a,o){var l,_,u,f,c,p;if("number"!=typeof n&&(n=this._parseTimeOrLabel(n,0,!0,r)),!(r instanceof t)){if(r instanceof Array||r&&r.push&&h(r)){for(a=a||"normal",o=o||0,l=n,_=r.length,u=0;_>u;u++)h(f=r[u])&&(f=new s({tweens:f})),this.add(f,l),"string"!=typeof f&&"function"!=typeof f&&("sequence"===a?l=f._startTime+f.totalDuration()/f._timeScale:"start"===a&&(f._startTime-=f.delay())),l+=o;return this._uncache(!0)}if("string"==typeof r)return this.addLabel(r,n);if("function"!=typeof r)throw"Cannot add "+r+" into the timeline; it is not a tween, timeline, function, or string.";r=i.delayedCall(0,r)}if(e.prototype.add.call(this,r,n),(this._gc||this._time===this._duration)&&!this._paused&&this._durationr._startTime;c._timeline;)p&&c._timeline.smoothChildTiming?c.totalTime(c._totalTime,!0):c._gc&&c._enabled(!0,!1),c=c._timeline;return this},d.remove=function(e){if(e instanceof t)return this._remove(e,!1);if(e instanceof Array||e&&e.push&&h(e)){for(var i=e.length;--i>-1;)this.remove(e[i]);return this}return"string"==typeof e?this.removeLabel(e):this.kill(null,e)},d._remove=function(t,i){e.prototype._remove.call(this,t,i);var s=this._last;return s?this._time>s._startTime+s._totalDuration/s._timeScale&&(this._time=this.duration(),this._totalTime=this._totalDuration):this._time=this._totalTime=this._duration=this._totalDuration=0,this},d.append=function(t,e){return this.add(t,this._parseTimeOrLabel(null,e,!0,t))},d.insert=d.insertMultiple=function(t,e,i,s){return this.add(t,e||0,i,s)},d.appendMultiple=function(t,e,i,s){return this.add(t,this._parseTimeOrLabel(null,e,!0,t),i,s)},d.addLabel=function(t,e){return this._labels[t]=this._parseTimeOrLabel(e),this},d.addPause=function(t,e,s,r){var n=i.delayedCall(0,p,["{self}",e,s,r],this);return n.data="isPause",this.add(n,t)},d.removeLabel=function(t){return delete this._labels[t],this},d.getLabelTime=function(t){return null!=this._labels[t]?this._labels[t]:-1},d._parseTimeOrLabel=function(e,i,s,r){var n;if(r instanceof t&&r.timeline===this)this.remove(r);else if(r&&(r instanceof Array||r.push&&h(r)))for(n=r.length;--n>-1;)r[n]instanceof t&&r[n].timeline===this&&this.remove(r[n]);if("string"==typeof i)return this._parseTimeOrLabel(i,s&&"number"==typeof e&&null==this._labels[i]?e-this.duration():0,s);if(i=i||0,"string"!=typeof e||!isNaN(e)&&null==this._labels[e])null==e&&(e=this.duration());else{if(n=e.indexOf("="),-1===n)return null==this._labels[e]?s?this._labels[e]=this.duration()+i:i:this._labels[e]+i;i=parseInt(e.charAt(n-1)+"1",10)*Number(e.substr(n+1)),e=n>1?this._parseTimeOrLabel(e.substr(0,n-1),0,s):this.duration()}return Number(e)+i},d.seek=function(t,e){return this.totalTime("number"==typeof t?t:this._parseTimeOrLabel(t),e!==!1)},d.stop=function(){return this.paused(!0)},d.gotoAndPlay=function(t,e){return this.play(t,e)},d.gotoAndStop=function(t,e){return this.pause(t,e)},d.render=function(t,e,i){this._gc&&this._enabled(!0,!1);var s,n,a,o,h,u=this._dirty?this.totalDuration():this._totalDuration,f=this._time,c=this._startTime,p=this._timeScale,m=this._paused;if(t>=u)this._totalTime=this._time=u,this._reversed||this._hasPausedChild()||(n=!0,o="onComplete",h=!!this._timeline.autoRemoveChildren,0===this._duration&&(0===t||0>this._rawPrevTime||this._rawPrevTime===r)&&this._rawPrevTime!==t&&this._first&&(h=!0,this._rawPrevTime>r&&(o="onReverseComplete"))),this._rawPrevTime=this._duration||!e||t||this._rawPrevTime===t?t:r,t=u+1e-4;else if(1e-7>t)if(this._totalTime=this._time=0,(0!==f||0===this._duration&&this._rawPrevTime!==r&&(this._rawPrevTime>0||0>t&&this._rawPrevTime>=0))&&(o="onReverseComplete",n=this._reversed),0>t)this._active=!1,this._timeline.autoRemoveChildren&&this._reversed?(h=n=!0,o="onReverseComplete"):this._rawPrevTime>=0&&this._first&&(h=!0),this._rawPrevTime=t;else{if(this._rawPrevTime=this._duration||!e||t||this._rawPrevTime===t?t:r,0===t&&n)for(s=this._first;s&&0===s._startTime;)s._duration||(n=!1),s=s._next;t=0,this._initted||(h=!0)}else this._totalTime=this._time=this._rawPrevTime=t;if(this._time!==f&&this._first||i||h){if(this._initted||(this._initted=!0),this._active||!this._paused&&this._time!==f&&t>0&&(this._active=!0),0===f&&this.vars.onStart&&0!==this._time&&(e||this._callback("onStart")),this._time>=f)for(s=this._first;s&&(a=s._next,!this._paused||m);)(s._active||s._startTime<=this._time&&!s._paused&&!s._gc)&&(s._reversed?s.render((s._dirty?s.totalDuration():s._totalDuration)-(t-s._startTime)*s._timeScale,e,i):s.render((t-s._startTime)*s._timeScale,e,i)),s=a;else for(s=this._last;s&&(a=s._prev,!this._paused||m);)(s._active||f>=s._startTime&&!s._paused&&!s._gc)&&(s._reversed?s.render((s._dirty?s.totalDuration():s._totalDuration)-(t-s._startTime)*s._timeScale,e,i):s.render((t-s._startTime)*s._timeScale,e,i)),s=a;this._onUpdate&&(e||(l.length&&_(),this._callback("onUpdate"))),o&&(this._gc||(c===this._startTime||p!==this._timeScale)&&(0===this._time||u>=this.totalDuration())&&(n&&(l.length&&_(),this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!e&&this.vars[o]&&this._callback(o)))}},d._hasPausedChild=function(){for(var t=this._first;t;){if(t._paused||t instanceof s&&t._hasPausedChild())return!0;t=t._next}return!1},d.getChildren=function(t,e,s,r){r=r||-9999999999;for(var n=[],a=this._first,o=0;a;)r>a._startTime||(a instanceof i?e!==!1&&(n[o++]=a):(s!==!1&&(n[o++]=a),t!==!1&&(n=n.concat(a.getChildren(!0,e,s)),o=n.length))),a=a._next;return n},d.getTweensOf=function(t,e){var s,r,n=this._gc,a=[],o=0;for(n&&this._enabled(!0,!0),s=i.getTweensOf(t),r=s.length;--r>-1;)(s[r].timeline===this||e&&this._contains(s[r]))&&(a[o++]=s[r]);return n&&this._enabled(!1,!0),a},d.recent=function(){return this._recent},d._contains=function(t){for(var e=t.timeline;e;){if(e===this)return!0;e=e.timeline}return!1},d.shiftChildren=function(t,e,i){i=i||0;for(var s,r=this._first,n=this._labels;r;)r._startTime>=i&&(r._startTime+=t),r=r._next;if(e)for(s in n)n[s]>=i&&(n[s]+=t);return this._uncache(!0)},d._kill=function(t,e){if(!t&&!e)return this._enabled(!1,!1);for(var i=e?this.getTweensOf(e):this.getChildren(!0,!0,!1),s=i.length,r=!1;--s>-1;)i[s]._kill(t,e)&&(r=!0);return r},d.clear=function(t){var e=this.getChildren(!1,!0,!0),i=e.length;for(this._time=this._totalTime=0;--i>-1;)e[i]._enabled(!1,!1);return t!==!1&&(this._labels={}),this._uncache(!0)},d.invalidate=function(){for(var e=this._first;e;)e.invalidate(),e=e._next;return t.prototype.invalidate.call(this)},d._enabled=function(t,i){if(t===this._gc)for(var s=this._first;s;)s._enabled(t,!0),s=s._next;return e.prototype._enabled.call(this,t,i)},d.totalTime=function(){this._forcingPlayhead=!0;var e=t.prototype.totalTime.apply(this,arguments);return this._forcingPlayhead=!1,e},d.duration=function(t){return arguments.length?(0!==this.duration()&&0!==t&&this.timeScale(this._duration/t),this):(this._dirty&&this.totalDuration(),this._duration)},d.totalDuration=function(t){if(!arguments.length){if(this._dirty){for(var e,i,s=0,r=this._last,n=999999999999;r;)e=r._prev,r._dirty&&r.totalDuration(),r._startTime>n&&this._sortChildren&&!r._paused?this.add(r,r._startTime-r._delay):n=r._startTime,0>r._startTime&&!r._paused&&(s-=r._startTime,this._timeline.smoothChildTiming&&(this._startTime+=r._startTime/this._timeScale),this.shiftChildren(-r._startTime,!1,-9999999999),n=0),i=r._startTime+r._totalDuration/r._timeScale,i>s&&(s=i),r=e;this._duration=this._totalDuration=s,this._dirty=!1}return this._totalDuration}return 0!==this.totalDuration()&&0!==t&&this.timeScale(this._totalDuration/t),this},d.paused=function(e){if(!e)for(var i=this._first,s=this._time;i;)i._startTime===s&&"isPause"===i.data&&(i._rawPrevTime=0),i=i._next;return t.prototype.paused.apply(this,arguments)},d.usesFrames=function(){for(var e=this._timeline;e._timeline;)e=e._timeline;return e===t._rootFramesTimeline},d.rawTime=function(){return this._paused?this._totalTime:(this._timeline.rawTime()-this._startTime)*this._timeScale},s},!0)}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()(),function(t){"use strict";var e=function(){return(_gsScope.GreenSockGlobals||_gsScope)[t]};"function"==typeof define&&define.amd?define(["TweenLite"],e):"undefined"!=typeof module&&module.exports&&(require("./TweenLite.js"),module.exports=e())}("TimelineLite"); /* EASING PLUGIN*/ /*! * VERSION: 1.15.5 * DATE: 2016-07-08 * UPDATES AND DOCS AT: http://greensock.com * * @license Copyright (c) 2008-2016, GreenSock. All rights reserved. * This work is subject to the terms at http://greensock.com/standard-license or for * Club GreenSock members, the software agreement that was issued with your membership. * * @author: Jack Doyle, jack@greensock.com **/ var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){"use strict";_gsScope._gsDefine("easing.Back",["easing.Ease"],function(a){var b,c,d,e=_gsScope.GreenSockGlobals||_gsScope,f=e.com.greensock,g=2*Math.PI,h=Math.PI/2,i=f._class,j=function(b,c){var d=i("easing."+b,function(){},!0),e=d.prototype=new a;return e.constructor=d,e.getRatio=c,d},k=a.register||function(){},l=function(a,b,c,d,e){var f=i("easing."+a,{easeOut:new b,easeIn:new c,easeInOut:new d},!0);return k(f,a),f},m=function(a,b,c){this.t=a,this.v=b,c&&(this.next=c,c.prev=this,this.c=c.v-b,this.gap=c.t-a)},n=function(b,c){var d=i("easing."+b,function(a){this._p1=a||0===a?a:1.70158,this._p2=1.525*this._p1},!0),e=d.prototype=new a;return e.constructor=d,e.getRatio=c,e.config=function(a){return new d(a)},d},o=l("Back",n("BackOut",function(a){return(a-=1)*a*((this._p1+1)*a+this._p1)+1}),n("BackIn",function(a){return a*a*((this._p1+1)*a-this._p1)}),n("BackInOut",function(a){return(a*=2)<1?.5*a*a*((this._p2+1)*a-this._p2):.5*((a-=2)*a*((this._p2+1)*a+this._p2)+2)})),p=i("easing.SlowMo",function(a,b,c){b=b||0===b?b:.7,null==a?a=.7:a>1&&(a=1),this._p=1!==a?b:0,this._p1=(1-a)/2,this._p2=a,this._p3=this._p1+this._p2,this._calcEnd=c===!0},!0),q=p.prototype=new a;return q.constructor=p,q.getRatio=function(a){var b=a+(.5-a)*this._p;return athis._p3?this._calcEnd?1-(a=(a-this._p3)/this._p1)*a:b+(a-b)*(a=(a-this._p3)/this._p1)*a*a*a:this._calcEnd?1:b},p.ease=new p(.7,.7),q.config=p.config=function(a,b,c){return new p(a,b,c)},b=i("easing.SteppedEase",function(a){a=a||1,this._p1=1/a,this._p2=a+1},!0),q=b.prototype=new a,q.constructor=b,q.getRatio=function(a){return 0>a?a=0:a>=1&&(a=.999999999),(this._p2*a>>0)*this._p1},q.config=b.config=function(a){return new b(a)},c=i("easing.RoughEase",function(b){b=b||{};for(var c,d,e,f,g,h,i=b.taper||"none",j=[],k=0,l=0|(b.points||20),n=l,o=b.randomize!==!1,p=b.clamp===!0,q=b.template instanceof a?b.template:null,r="number"==typeof b.strength?.4*b.strength:.4;--n>-1;)c=o?Math.random():1/l*n,d=q?q.getRatio(c):c,"none"===i?e=r:"out"===i?(f=1-c,e=f*f*r):"in"===i?e=c*c*r:.5>c?(f=2*c,e=f*f*.5*r):(f=2*(1-c),e=f*f*.5*r),o?d+=Math.random()*e-.5*e:n%2?d+=.5*e:d-=.5*e,p&&(d>1?d=1:0>d&&(d=0)),j[k++]={x:c,y:d};for(j.sort(function(a,b){return a.x-b.x}),h=new m(1,1,null),n=l;--n>-1;)g=j[n],h=new m(g.x,g.y,h);this._prev=new m(0,0,0!==h.t?h:h.next)},!0),q=c.prototype=new a,q.constructor=c,q.getRatio=function(a){var b=this._prev;if(a>b.t){for(;b.next&&a>=b.t;)b=b.next;b=b.prev}else for(;b.prev&&a<=b.t;)b=b.prev;return this._prev=b,b.v+(a-b.t)/b.gap*b.c},q.config=function(a){return new c(a)},c.ease=new c,l("Bounce",j("BounceOut",function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}),j("BounceIn",function(a){return(a=1-a)<1/2.75?1-7.5625*a*a:2/2.75>a?1-(7.5625*(a-=1.5/2.75)*a+.75):2.5/2.75>a?1-(7.5625*(a-=2.25/2.75)*a+.9375):1-(7.5625*(a-=2.625/2.75)*a+.984375)}),j("BounceInOut",function(a){var b=.5>a;return a=b?1-2*a:2*a-1,a=1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375,b?.5*(1-a):.5*a+.5})),l("Circ",j("CircOut",function(a){return Math.sqrt(1-(a-=1)*a)}),j("CircIn",function(a){return-(Math.sqrt(1-a*a)-1)}),j("CircInOut",function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)})),d=function(b,c,d){var e=i("easing."+b,function(a,b){this._p1=a>=1?a:1,this._p2=(b||d)/(1>a?a:1),this._p3=this._p2/g*(Math.asin(1/this._p1)||0),this._p2=g/this._p2},!0),f=e.prototype=new a;return f.constructor=e,f.getRatio=c,f.config=function(a,b){return new e(a,b)},e},l("Elastic",d("ElasticOut",function(a){return this._p1*Math.pow(2,-10*a)*Math.sin((a-this._p3)*this._p2)+1},.3),d("ElasticIn",function(a){return-(this._p1*Math.pow(2,10*(a-=1))*Math.sin((a-this._p3)*this._p2))},.3),d("ElasticInOut",function(a){return(a*=2)<1?-.5*(this._p1*Math.pow(2,10*(a-=1))*Math.sin((a-this._p3)*this._p2)):this._p1*Math.pow(2,-10*(a-=1))*Math.sin((a-this._p3)*this._p2)*.5+1},.45)),l("Expo",j("ExpoOut",function(a){return 1-Math.pow(2,-10*a)}),j("ExpoIn",function(a){return Math.pow(2,10*(a-1))-.001}),j("ExpoInOut",function(a){return(a*=2)<1?.5*Math.pow(2,10*(a-1)):.5*(2-Math.pow(2,-10*(a-1)))})),l("Sine",j("SineOut",function(a){return Math.sin(a*h)}),j("SineIn",function(a){return-Math.cos(a*h)+1}),j("SineInOut",function(a){return-.5*(Math.cos(Math.PI*a)-1)})),i("easing.EaseLookup",{find:function(b){return a.map[b]}},!0),k(e.SlowMo,"SlowMo","ease,"),k(c,"RoughEase","ease,"),k(b,"SteppedEase","ease,"),o},!0)}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()(),function(){"use strict";var a=function(){return _gsScope.GreenSockGlobals||_gsScope};"function"==typeof define&&define.amd?define(["TweenLite"],a):"undefined"!=typeof module&&module.exports&&(require("../TweenLite.js"),module.exports=a())}(); /* CSS PLUGIN */ /*! * VERSION: 1.19.1 * DATE: 2017-01-17 * UPDATES AND DOCS AT: http://greensock.com * * @license Copyright (c) 2008-2017, GreenSock. All rights reserved. * This work is subject to the terms at http://greensock.com/standard-license or for * Club GreenSock members, the software agreement that was issued with your membership. * * @author: Jack Doyle, jack@greensock.com */ var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){"use strict";_gsScope._gsDefine("plugins.CSSPlugin",["plugins.TweenPlugin","TweenLite"],function(a,b){var c,d,e,f,g=function(){a.call(this,"css"),this._overwriteProps.length=0,this.setRatio=g.prototype.setRatio},h=_gsScope._gsDefine.globals,i={},j=g.prototype=new a("css");j.constructor=g,g.version="1.19.1",g.API=2,g.defaultTransformPerspective=0,g.defaultSkewType="compensated",g.defaultSmoothOrigin=!0,j="px",g.suffixMap={top:j,right:j,bottom:j,left:j,width:j,height:j,fontSize:j,padding:j,margin:j,perspective:j,lineHeight:""};var k,l,m,n,o,p,q,r,s=/(?:\-|\.|\b)(\d|\.|e\-)+/g,t=/(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,u=/(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,v=/(?![+-]?\d*\.?\d+|[+-]|e[+-]\d+)[^0-9]/g,w=/(?:\d|\-|\+|=|#|\.)*/g,x=/opacity *= *([^)]*)/i,y=/opacity:([^;]*)/i,z=/alpha\(opacity *=.+?\)/i,A=/^(rgb|hsl)/,B=/([A-Z])/g,C=/-([a-z])/gi,D=/(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,E=function(a,b){return b.toUpperCase()},F=/(?:Left|Right|Width)/i,G=/(M11|M12|M21|M22)=[\d\-\.e]+/gi,H=/progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,I=/,(?=[^\)]*(?:\(|$))/gi,J=/[\s,\(]/i,K=Math.PI/180,L=180/Math.PI,M={},N={style:{}},O=_gsScope.document||{createElement:function(){return N}},P=function(a,b){return O.createElementNS?O.createElementNS(b||"http://www.w3.org/1999/xhtml",a):O.createElement(a)},Q=P("div"),R=P("img"),S=g._internals={_specialProps:i},T=(_gsScope.navigator||{}).userAgent||"",U=function(){var a=T.indexOf("Android"),b=P("a");return m=-1!==T.indexOf("Safari")&&-1===T.indexOf("Chrome")&&(-1===a||parseFloat(T.substr(a+8,2))>3),o=m&&parseFloat(T.substr(T.indexOf("Version/")+8,2))<6,n=-1!==T.indexOf("Firefox"),(/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(T)||/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(T))&&(p=parseFloat(RegExp.$1)),b?(b.style.cssText="top:1px;opacity:.55;",/^0.55/.test(b.style.opacity)):!1}(),V=function(a){return x.test("string"==typeof a?a:(a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100:1},W=function(a){_gsScope.console&&console.log(a)},X="",Y="",Z=function(a,b){b=b||Q;var c,d,e=b.style;if(void 0!==e[a])return a;for(a=a.charAt(0).toUpperCase()+a.substr(1),c=["O","Moz","ms","Ms","Webkit"],d=5;--d>-1&&void 0===e[c[d]+a];);return d>=0?(Y=3===d?"ms":c[d],X="-"+Y.toLowerCase()+"-",Y+a):null},$=O.defaultView?O.defaultView.getComputedStyle:function(){},_=g.getStyle=function(a,b,c,d,e){var f;return U||"opacity"!==b?(!d&&a.style[b]?f=a.style[b]:(c=c||$(a))?f=c[b]||c.getPropertyValue(b)||c.getPropertyValue(b.replace(B,"-$1").toLowerCase()):a.currentStyle&&(f=a.currentStyle[b]),null==e||f&&"none"!==f&&"auto"!==f&&"auto auto"!==f?f:e):V(a)},aa=S.convertToPixels=function(a,c,d,e,f){if("px"===e||!e)return d;if("auto"===e||!d)return 0;var h,i,j,k=F.test(c),l=a,m=Q.style,n=0>d,o=1===d;if(n&&(d=-d),o&&(d*=100),"%"===e&&-1!==c.indexOf("border"))h=d/100*(k?a.clientWidth:a.clientHeight);else{if(m.cssText="border:0 solid red;position:"+_(a,"position")+";line-height:0;","%"!==e&&l.appendChild&&"v"!==e.charAt(0)&&"rem"!==e)m[k?"borderLeftWidth":"borderTopWidth"]=d+e;else{if(l=a.parentNode||O.body,i=l._gsCache,j=b.ticker.frame,i&&k&&i.time===j)return i.width*d/100;m[k?"width":"height"]=d+e}l.appendChild(Q),h=parseFloat(Q[k?"offsetWidth":"offsetHeight"]),l.removeChild(Q),k&&"%"===e&&g.cacheWidths!==!1&&(i=l._gsCache=l._gsCache||{},i.time=j,i.width=h/d*100),0!==h||f||(h=aa(a,c,d,e,!0))}return o&&(h/=100),n?-h:h},ba=S.calculateOffset=function(a,b,c){if("absolute"!==_(a,"position",c))return 0;var d="left"===b?"Left":"Top",e=_(a,"margin"+d,c);return a["offset"+d]-(aa(a,b,parseFloat(e),e.replace(w,""))||0)},ca=function(a,b){var c,d,e,f={};if(b=b||$(a,null))if(c=b.length)for(;--c>-1;)e=b[c],(-1===e.indexOf("-transform")||Da===e)&&(f[e.replace(C,E)]=b.getPropertyValue(e));else for(c in b)(-1===c.indexOf("Transform")||Ca===c)&&(f[c]=b[c]);else if(b=a.currentStyle||a.style)for(c in b)"string"==typeof c&&void 0===f[c]&&(f[c.replace(C,E)]=b[c]);return U||(f.opacity=V(a)),d=Ra(a,b,!1),f.rotation=d.rotation,f.skewX=d.skewX,f.scaleX=d.scaleX,f.scaleY=d.scaleY,f.x=d.x,f.y=d.y,Fa&&(f.z=d.z,f.rotationX=d.rotationX,f.rotationY=d.rotationY,f.scaleZ=d.scaleZ),f.filters&&delete f.filters,f},da=function(a,b,c,d,e){var f,g,h,i={},j=a.style;for(g in c)"cssText"!==g&&"length"!==g&&isNaN(g)&&(b[g]!==(f=c[g])||e&&e[g])&&-1===g.indexOf("Origin")&&("number"==typeof f||"string"==typeof f)&&(i[g]="auto"!==f||"left"!==g&&"top"!==g?""!==f&&"auto"!==f&&"none"!==f||"string"!=typeof b[g]||""===b[g].replace(v,"")?f:0:ba(a,g),void 0!==j[g]&&(h=new sa(j,g,j[g],h)));if(d)for(g in d)"className"!==g&&(i[g]=d[g]);return{difs:i,firstMPT:h}},ea={width:["Left","Right"],height:["Top","Bottom"]},fa=["marginLeft","marginRight","marginTop","marginBottom"],ga=function(a,b,c){if("svg"===(a.nodeName+"").toLowerCase())return(c||$(a))[b]||0;if(a.getCTM&&Oa(a))return a.getBBox()[b]||0;var d=parseFloat("width"===b?a.offsetWidth:a.offsetHeight),e=ea[b],f=e.length;for(c=c||$(a,null);--f>-1;)d-=parseFloat(_(a,"padding"+e[f],c,!0))||0,d-=parseFloat(_(a,"border"+e[f]+"Width",c,!0))||0;return d},ha=function(a,b){if("contain"===a||"auto"===a||"auto auto"===a)return a+" ";(null==a||""===a)&&(a="0 0");var c,d=a.split(" "),e=-1!==a.indexOf("left")?"0%":-1!==a.indexOf("right")?"100%":d[0],f=-1!==a.indexOf("top")?"0%":-1!==a.indexOf("bottom")?"100%":d[1];if(d.length>3&&!b){for(d=a.split(", ").join(",").split(","),a=[],c=0;c2?" "+d[2]:""),b&&(b.oxp=-1!==e.indexOf("%"),b.oyp=-1!==f.indexOf("%"),b.oxr="="===e.charAt(1),b.oyr="="===f.charAt(1),b.ox=parseFloat(e.replace(v,"")),b.oy=parseFloat(f.replace(v,"")),b.v=a),b||a},ia=function(a,b){return"function"==typeof a&&(a=a(r,q)),"string"==typeof a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2)):parseFloat(a)-parseFloat(b)||0},ja=function(a,b){return"function"==typeof a&&(a=a(r,q)),null==a?b:"string"==typeof a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2))+b:parseFloat(a)||0},ka=function(a,b,c,d){var e,f,g,h,i,j=1e-6;return"function"==typeof a&&(a=a(r,q)),null==a?h=b:"number"==typeof a?h=a:(e=360,f=a.split("_"),i="="===a.charAt(1),g=(i?parseInt(a.charAt(0)+"1",10)*parseFloat(f[0].substr(2)):parseFloat(f[0]))*(-1===a.indexOf("rad")?1:L)-(i?0:b),f.length&&(d&&(d[c]=b+g),-1!==a.indexOf("short")&&(g%=e,g!==g%(e/2)&&(g=0>g?g+e:g-e)),-1!==a.indexOf("_cw")&&0>g?g=(g+9999999999*e)%e-(g/e|0)*e:-1!==a.indexOf("ccw")&&g>0&&(g=(g-9999999999*e)%e-(g/e|0)*e)),h=b+g),j>h&&h>-j&&(h=0),h},la={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],fuchsia:[255,0,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},ma=function(a,b,c){return a=0>a?a+1:a>1?a-1:a,255*(1>6*a?b+(c-b)*a*6:.5>a?c:2>3*a?b+(c-b)*(2/3-a)*6:b)+.5|0},na=g.parseColor=function(a,b){var c,d,e,f,g,h,i,j,k,l,m;if(a)if("number"==typeof a)c=[a>>16,a>>8&255,255&a];else{if(","===a.charAt(a.length-1)&&(a=a.substr(0,a.length-1)),la[a])c=la[a];else if("#"===a.charAt(0))4===a.length&&(d=a.charAt(1),e=a.charAt(2),f=a.charAt(3),a="#"+d+d+e+e+f+f),a=parseInt(a.substr(1),16),c=[a>>16,a>>8&255,255&a];else if("hsl"===a.substr(0,3))if(c=m=a.match(s),b){if(-1!==a.indexOf("="))return a.match(t)}else g=Number(c[0])%360/360,h=Number(c[1])/100,i=Number(c[2])/100,e=.5>=i?i*(h+1):i+h-i*h,d=2*i-e,c.length>3&&(c[3]=Number(a[3])),c[0]=ma(g+1/3,d,e),c[1]=ma(g,d,e),c[2]=ma(g-1/3,d,e);else c=a.match(s)||la.transparent;c[0]=Number(c[0]),c[1]=Number(c[1]),c[2]=Number(c[2]),c.length>3&&(c[3]=Number(c[3]))}else c=la.black;return b&&!m&&(d=c[0]/255,e=c[1]/255,f=c[2]/255,j=Math.max(d,e,f),k=Math.min(d,e,f),i=(j+k)/2,j===k?g=h=0:(l=j-k,h=i>.5?l/(2-j-k):l/(j+k),g=j===d?(e-f)/l+(f>e?6:0):j===e?(f-d)/l+2:(d-e)/l+4,g*=60),c[0]=g+.5|0,c[1]=100*h+.5|0,c[2]=100*i+.5|0),c},oa=function(a,b){var c,d,e,f=a.match(pa)||[],g=0,h=f.length?"":a;for(c=0;c0?g[0].replace(s,""):"";return k?e=b?function(a){var b,m,n,o;if("number"==typeof a)a+=l;else if(d&&I.test(a)){for(o=a.replace(I,"|").split("|"),n=0;nn--)for(;++nm--)for(;++mi;i++)h[a[i]]=j[i]=j[i]||j[(i-1)/2>>0];return e.parse(b,h,f,g)}},sa=(S._setPluginRatio=function(a){this.plugin.setRatio(a);for(var b,c,d,e,f,g=this.data,h=g.proxy,i=g.firstMPT,j=1e-6;i;)b=h[i.v],i.r?b=Math.round(b):j>b&&b>-j&&(b=0),i.t[i.p]=b,i=i._next;if(g.autoRotate&&(g.autoRotate.rotation=g.mod?g.mod(h.rotation,this.t):h.rotation),1===a||0===a)for(i=g.firstMPT,f=1===a?"e":"b";i;){if(c=i.t,c.type){if(1===c.type){for(e=c.xs0+c.s+c.xs1,d=1;d0;)i="xn"+g,h=d.p+"_"+i,n[h]=d.data[i],m[h]=d[i],f||(j=new sa(d,i,h,j,d.rxp[i]));d=d._next}return{proxy:m,end:n,firstMPT:j,pt:k}},S.CSSPropTween=function(a,b,d,e,g,h,i,j,k,l,m){this.t=a,this.p=b,this.s=d,this.c=e,this.n=i||b,a instanceof ta||f.push(this.n),this.r=j,this.type=h||0,k&&(this.pr=k,c=!0),this.b=void 0===l?d:l,this.e=void 0===m?d+e:m,g&&(this._next=g,g._prev=this)}),ua=function(a,b,c,d,e,f){var g=new ta(a,b,c,d-c,e,-1,f);return g.b=c,g.e=g.xs0=d,g},va=g.parseComplex=function(a,b,c,d,e,f,h,i,j,l){c=c||f||"","function"==typeof d&&(d=d(r,q)),h=new ta(a,b,0,0,h,l?2:1,null,!1,i,c,d),d+="",e&&pa.test(d+c)&&(d=[c,d],g.colorStringFilter(d),c=d[0],d=d[1]);var m,n,o,p,u,v,w,x,y,z,A,B,C,D=c.split(", ").join(",").split(" "),E=d.split(", ").join(",").split(" "),F=D.length,G=k!==!1;for((-1!==d.indexOf(",")||-1!==c.indexOf(","))&&(D=D.join(" ").replace(I,", ").split(" "),E=E.join(" ").replace(I,", ").split(" "),F=D.length),F!==E.length&&(D=(f||"").split(" "),F=D.length),h.plugin=j,h.setRatio=l,pa.lastIndex=0,m=0;F>m;m++)if(p=D[m],u=E[m],x=parseFloat(p),x||0===x)h.appendXtra("",x,ia(u,x),u.replace(t,""),G&&-1!==u.indexOf("px"),!0);else if(e&&pa.test(p))B=u.indexOf(")")+1,B=")"+(B?u.substr(B):""),C=-1!==u.indexOf("hsl")&&U,p=na(p,C),u=na(u,C),y=p.length+u.length>6,y&&!U&&0===u[3]?(h["xs"+h.l]+=h.l?" transparent":"transparent",h.e=h.e.split(E[m]).join("transparent")):(U||(y=!1),C?h.appendXtra(y?"hsla(":"hsl(",p[0],ia(u[0],p[0]),",",!1,!0).appendXtra("",p[1],ia(u[1],p[1]),"%,",!1).appendXtra("",p[2],ia(u[2],p[2]),y?"%,":"%"+B,!1):h.appendXtra(y?"rgba(":"rgb(",p[0],u[0]-p[0],",",!0,!0).appendXtra("",p[1],u[1]-p[1],",",!0).appendXtra("",p[2],u[2]-p[2],y?",":B,!0),y&&(p=p.length<4?1:p[3],h.appendXtra("",p,(u.length<4?1:u[3])-p,B,!1))),pa.lastIndex=0;else if(v=p.match(s)){if(w=u.match(t),!w||w.length!==v.length)return h;for(o=0,n=0;n0;)j["xn"+wa]=0,j["xs"+wa]="";j.xs0="",j._next=j._prev=j.xfirst=j.data=j.plugin=j.setRatio=j.rxp=null,j.appendXtra=function(a,b,c,d,e,f){var g=this,h=g.l;return g["xs"+h]+=f&&(h||g["xs"+h])?" "+a:a||"",c||0===h||g.plugin?(g.l++,g.type=g.setRatio?2:1,g["xs"+g.l]=d||"",h>0?(g.data["xn"+h]=b+c,g.rxp["xn"+h]=e,g["xn"+h]=b,g.plugin||(g.xfirst=new ta(g,"xn"+h,b,c,g.xfirst||g,0,g.n,e,g.pr),g.xfirst.xs0=0),g):(g.data={s:b+c},g.rxp={},g.s=b,g.c=c,g.r=e,g)):(g["xs"+h]+=b+(d||""),g)};var xa=function(a,b){b=b||{},this.p=b.prefix?Z(a)||a:a,i[a]=i[this.p]=this,this.format=b.formatter||qa(b.defaultValue,b.color,b.collapsible,b.multi),b.parser&&(this.parse=b.parser),this.clrs=b.color,this.multi=b.multi,this.keyword=b.keyword,this.dflt=b.defaultValue,this.pr=b.priority||0},ya=S._registerComplexSpecialProp=function(a,b,c){"object"!=typeof b&&(b={parser:c});var d,e,f=a.split(","),g=b.defaultValue;for(c=c||[g],d=0;dh.length?i.length:h.length,g=0;j>g;g++)b=h[g]=h[g]||this.dflt,c=i[g]=i[g]||this.dflt,m&&(k=b.indexOf(m),l=c.indexOf(m),k!==l&&(-1===l?h[g]=h[g].split(m).join(""):-1===k&&(h[g]+=" "+m)));b=h.join(", "),c=i.join(", ")}return va(a,this.p,b,c,this.clrs,this.dflt,d,this.pr,e,f)},j.parse=function(a,b,c,d,f,g,h){return this.parseComplex(a.style,this.format(_(a,this.p,e,!1,this.dflt)),this.format(b),f,g)},g.registerSpecialProp=function(a,b,c){ya(a,{parser:function(a,d,e,f,g,h,i){var j=new ta(a,e,0,0,g,2,e,!1,c);return j.plugin=h,j.setRatio=b(a,d,f._tween,e),j},priority:c})},g.useSVGTransformAttr=!0;var Aa,Ba="scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent".split(","),Ca=Z("transform"),Da=X+"transform",Ea=Z("transformOrigin"),Fa=null!==Z("perspective"),Ga=S.Transform=function(){this.perspective=parseFloat(g.defaultTransformPerspective)||0,this.force3D=g.defaultForce3D!==!1&&Fa?g.defaultForce3D||"auto":!1},Ha=_gsScope.SVGElement,Ia=function(a,b,c){var d,e=O.createElementNS("http://www.w3.org/2000/svg",a),f=/([a-z])([A-Z])/g;for(d in c)e.setAttributeNS(null,d.replace(f,"$1-$2").toLowerCase(),c[d]);return b.appendChild(e),e},Ja=O.documentElement||{},Ka=function(){var a,b,c,d=p||/Android/i.test(T)&&!_gsScope.chrome;return O.createElementNS&&!d&&(a=Ia("svg",Ja),b=Ia("rect",a,{width:100,height:50,x:100}),c=b.getBoundingClientRect().width,b.style[Ea]="50% 50%",b.style[Ca]="scaleX(0.5)",d=c===b.getBoundingClientRect().width&&!(n&&Fa),Ja.removeChild(a)),d}(),La=function(a,b,c,d,e,f){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=a._gsTransform,w=Qa(a,!0);v&&(t=v.xOrigin,u=v.yOrigin),(!d||(h=d.split(" ")).length<2)&&(n=a.getBBox(),0===n.x&&0===n.y&&n.width+n.height===0&&(n={x:parseFloat(a.hasAttribute("x")?a.getAttribute("x"):a.hasAttribute("cx")?a.getAttribute("cx"):0)||0,y:parseFloat(a.hasAttribute("y")?a.getAttribute("y"):a.hasAttribute("cy")?a.getAttribute("cy"):0)||0,width:0,height:0}),b=ha(b).split(" "),h=[(-1!==b[0].indexOf("%")?parseFloat(b[0])/100*n.width:parseFloat(b[0]))+n.x,(-1!==b[1].indexOf("%")?parseFloat(b[1])/100*n.height:parseFloat(b[1]))+n.y]),c.xOrigin=k=parseFloat(h[0]),c.yOrigin=l=parseFloat(h[1]),d&&w!==Pa&&(m=w[0],n=w[1],o=w[2],p=w[3],q=w[4],r=w[5],s=m*p-n*o,s&&(i=k*(p/s)+l*(-o/s)+(o*r-p*q)/s,j=k*(-n/s)+l*(m/s)-(m*r-n*q)/s,k=c.xOrigin=h[0]=i,l=c.yOrigin=h[1]=j)),v&&(f&&(c.xOffset=v.xOffset,c.yOffset=v.yOffset,v=c),e||e!==!1&&g.defaultSmoothOrigin!==!1?(i=k-t,j=l-u,v.xOffset+=i*w[0]+j*w[2]-i,v.yOffset+=i*w[1]+j*w[3]-j):v.xOffset=v.yOffset=0),f||a.setAttribute("data-svg-origin",h.join(" "))},Ma=function(a){var b,c=P("svg",this.ownerSVGElement.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),d=this.parentNode,e=this.nextSibling,f=this.style.cssText;if(Ja.appendChild(c),c.appendChild(this),this.style.display="block",a)try{b=this.getBBox(),this._originalGetBBox=this.getBBox,this.getBBox=Ma}catch(g){}else this._originalGetBBox&&(b=this._originalGetBBox());return e?d.insertBefore(this,e):d.appendChild(this),Ja.removeChild(c),this.style.cssText=f,b},Na=function(a){try{return a.getBBox()}catch(b){return Ma.call(a,!0)}},Oa=function(a){return!(!(Ha&&a.getCTM&&Na(a))||a.parentNode&&!a.ownerSVGElement)},Pa=[1,0,0,1,0,0],Qa=function(a,b){var c,d,e,f,g,h,i=a._gsTransform||new Ga,j=1e5,k=a.style;if(Ca?d=_(a,Da,null,!0):a.currentStyle&&(d=a.currentStyle.filter.match(G),d=d&&4===d.length?[d[0].substr(4),Number(d[2].substr(4)),Number(d[1].substr(4)),d[3].substr(4),i.x||0,i.y||0].join(","):""),c=!d||"none"===d||"matrix(1, 0, 0, 1, 0, 0)"===d,c&&Ca&&((h="none"===$(a).display)||!a.parentNode)&&(h&&(f=k.display,k.display="block"),a.parentNode||(g=1,Ja.appendChild(a)),d=_(a,Da,null,!0),c=!d||"none"===d||"matrix(1, 0, 0, 1, 0, 0)"===d,f?k.display=f:h&&Va(k,"display"),g&&Ja.removeChild(a)),(i.svg||a.getCTM&&Oa(a))&&(c&&-1!==(k[Ca]+"").indexOf("matrix")&&(d=k[Ca],c=0),e=a.getAttribute("transform"),c&&e&&(-1!==e.indexOf("matrix")?(d=e,c=0):-1!==e.indexOf("translate")&&(d="matrix(1,0,0,1,"+e.match(/(?:\-|\b)[\d\-\.e]+\b/gi).join(",")+")",c=0))),c)return Pa;for(e=(d||"").match(s)||[],wa=e.length;--wa>-1;)f=Number(e[wa]),e[wa]=(g=f-(f|=0))?(g*j+(0>g?-.5:.5)|0)/j+f:f;return b&&e.length>6?[e[0],e[1],e[4],e[5],e[12],e[13]]:e},Ra=S.getTransform=function(a,c,d,e){if(a._gsTransform&&d&&!e)return a._gsTransform;var f,h,i,j,k,l,m=d?a._gsTransform||new Ga:new Ga,n=m.scaleX<0,o=2e-5,p=1e5,q=Fa?parseFloat(_(a,Ea,c,!1,"0 0 0").split(" ")[2])||m.zOrigin||0:0,r=parseFloat(g.defaultTransformPerspective)||0;if(m.svg=!(!a.getCTM||!Oa(a)),m.svg&&(La(a,_(a,Ea,c,!1,"50% 50%")+"",m,a.getAttribute("data-svg-origin")),Aa=g.useSVGTransformAttr||Ka),f=Qa(a),f!==Pa){if(16===f.length){var s,t,u,v,w,x=f[0],y=f[1],z=f[2],A=f[3],B=f[4],C=f[5],D=f[6],E=f[7],F=f[8],G=f[9],H=f[10],I=f[12],J=f[13],K=f[14],M=f[11],N=Math.atan2(D,H);m.zOrigin&&(K=-m.zOrigin,I=F*K-f[12],J=G*K-f[13],K=H*K+m.zOrigin-f[14]),m.rotationX=N*L,N&&(v=Math.cos(-N),w=Math.sin(-N),s=B*v+F*w,t=C*v+G*w,u=D*v+H*w,F=B*-w+F*v,G=C*-w+G*v,H=D*-w+H*v,M=E*-w+M*v,B=s,C=t,D=u),N=Math.atan2(-z,H),m.rotationY=N*L,N&&(v=Math.cos(-N),w=Math.sin(-N),s=x*v-F*w,t=y*v-G*w,u=z*v-H*w,G=y*w+G*v,H=z*w+H*v,M=A*w+M*v,x=s,y=t,z=u),N=Math.atan2(y,x),m.rotation=N*L,N&&(v=Math.cos(-N),w=Math.sin(-N),x=x*v+B*w,t=y*v+C*w,C=y*-w+C*v,D=z*-w+D*v,y=t),m.rotationX&&Math.abs(m.rotationX)+Math.abs(m.rotation)>359.9&&(m.rotationX=m.rotation=0,m.rotationY=180-m.rotationY),m.scaleX=(Math.sqrt(x*x+y*y)*p+.5|0)/p,m.scaleY=(Math.sqrt(C*C+G*G)*p+.5|0)/p,m.scaleZ=(Math.sqrt(D*D+H*H)*p+.5|0)/p,m.rotationX||m.rotationY?m.skewX=0:(m.skewX=B||C?Math.atan2(B,C)*L+m.rotation:m.skewX||0,Math.abs(m.skewX)>90&&Math.abs(m.skewX)<270&&(n?(m.scaleX*=-1,m.skewX+=m.rotation<=0?180:-180,m.rotation+=m.rotation<=0?180:-180):(m.scaleY*=-1,m.skewX+=m.skewX<=0?180:-180))),m.perspective=M?1/(0>M?-M:M):0,m.x=I,m.y=J,m.z=K,m.svg&&(m.x-=m.xOrigin-(m.xOrigin*x-m.yOrigin*B),m.y-=m.yOrigin-(m.yOrigin*y-m.xOrigin*C))}else if(!Fa||e||!f.length||m.x!==f[4]||m.y!==f[5]||!m.rotationX&&!m.rotationY){var O=f.length>=6,P=O?f[0]:1,Q=f[1]||0,R=f[2]||0,S=O?f[3]:1;m.x=f[4]||0,m.y=f[5]||0,i=Math.sqrt(P*P+Q*Q),j=Math.sqrt(S*S+R*R),k=P||Q?Math.atan2(Q,P)*L:m.rotation||0,l=R||S?Math.atan2(R,S)*L+k:m.skewX||0,Math.abs(l)>90&&Math.abs(l)<270&&(n?(i*=-1,l+=0>=k?180:-180,k+=0>=k?180:-180):(j*=-1,l+=0>=l?180:-180)),m.scaleX=i,m.scaleY=j,m.rotation=k,m.skewX=l,Fa&&(m.rotationX=m.rotationY=m.z=0,m.perspective=r,m.scaleZ=1),m.svg&&(m.x-=m.xOrigin-(m.xOrigin*P+m.yOrigin*R),m.y-=m.yOrigin-(m.xOrigin*Q+m.yOrigin*S))}m.zOrigin=q;for(h in m)m[h]-o&&(m[h]=0)}return d&&(a._gsTransform=m,m.svg&&(Aa&&a.style[Ca]?b.delayedCall(.001,function(){Va(a.style,Ca)}):!Aa&&a.getAttribute("transform")&&b.delayedCall(.001,function(){a.removeAttribute("transform")}))),m},Sa=function(a){var b,c,d=this.data,e=-d.rotation*K,f=e+d.skewX*K,g=1e5,h=(Math.cos(e)*d.scaleX*g|0)/g,i=(Math.sin(e)*d.scaleX*g|0)/g,j=(Math.sin(f)*-d.scaleY*g|0)/g,k=(Math.cos(f)*d.scaleY*g|0)/g,l=this.t.style,m=this.t.currentStyle;if(m){c=i,i=-j,j=-c,b=m.filter,l.filter="";var n,o,q=this.t.offsetWidth,r=this.t.offsetHeight,s="absolute"!==m.position,t="progid:DXImageTransform.Microsoft.Matrix(M11="+h+", M12="+i+", M21="+j+", M22="+k,u=d.x+q*d.xPercent/100,v=d.y+r*d.yPercent/100;if(null!=d.ox&&(n=(d.oxp?q*d.ox*.01:d.ox)-q/2,o=(d.oyp?r*d.oy*.01:d.oy)-r/2,u+=n-(n*h+o*i),v+=o-(n*j+o*k)),s?(n=q/2,o=r/2,t+=", Dx="+(n-(n*h+o*i)+u)+", Dy="+(o-(n*j+o*k)+v)+")"):t+=", sizingMethod='auto expand')",-1!==b.indexOf("DXImageTransform.Microsoft.Matrix(")?l.filter=b.replace(H,t):l.filter=t+" "+b,(0===a||1===a)&&1===h&&0===i&&0===j&&1===k&&(s&&-1===t.indexOf("Dx=0, Dy=0")||x.test(b)&&100!==parseFloat(RegExp.$1)||-1===b.indexOf(b.indexOf("Alpha"))&&l.removeAttribute("filter")),!s){var y,z,A,B=8>p?1:-1;for(n=d.ieOffsetX||0,o=d.ieOffsetY||0,d.ieOffsetX=Math.round((q-((0>h?-h:h)*q+(0>i?-i:i)*r))/2+u),d.ieOffsetY=Math.round((r-((0>k?-k:k)*r+(0>j?-j:j)*q))/2+v),wa=0;4>wa;wa++)z=fa[wa],y=m[z],c=-1!==y.indexOf("px")?parseFloat(y):aa(this.t,z,parseFloat(y),y.replace(w,""))||0,A=c!==d[z]?2>wa?-d.ieOffsetX:-d.ieOffsetY:2>wa?n-d.ieOffsetX:o-d.ieOffsetY,l[z]=(d[z]=Math.round(c-A*(0===wa||2===wa?1:B)))+"px"}}},Ta=S.set3DTransformRatio=S.setTransformRatio=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,o,p,q,r,s,t,u,v,w,x,y,z=this.data,A=this.t.style,B=z.rotation,C=z.rotationX,D=z.rotationY,E=z.scaleX,F=z.scaleY,G=z.scaleZ,H=z.x,I=z.y,J=z.z,L=z.svg,M=z.perspective,N=z.force3D,O=z.skewY,P=z.skewX;if(O&&(P+=O,B+=O),((1===a||0===a)&&"auto"===N&&(this.tween._totalTime===this.tween._totalDuration||!this.tween._totalTime)||!N)&&!J&&!M&&!D&&!C&&1===G||Aa&&L||!Fa)return void(B||P||L?(B*=K,x=P*K,y=1e5,c=Math.cos(B)*E,f=Math.sin(B)*E,d=Math.sin(B-x)*-F,g=Math.cos(B-x)*F,x&&"simple"===z.skewType&&(b=Math.tan(x-O*K),b=Math.sqrt(1+b*b),d*=b,g*=b,O&&(b=Math.tan(O*K),b=Math.sqrt(1+b*b),c*=b,f*=b)),L&&(H+=z.xOrigin-(z.xOrigin*c+z.yOrigin*d)+z.xOffset,I+=z.yOrigin-(z.xOrigin*f+z.yOrigin*g)+z.yOffset,Aa&&(z.xPercent||z.yPercent)&&(q=this.t.getBBox(),H+=.01*z.xPercent*q.width,I+=.01*z.yPercent*q.height),q=1e-6,q>H&&H>-q&&(H=0),q>I&&I>-q&&(I=0)),u=(c*y|0)/y+","+(f*y|0)/y+","+(d*y|0)/y+","+(g*y|0)/y+","+H+","+I+")",L&&Aa?this.t.setAttribute("transform","matrix("+u):A[Ca]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix(":"matrix(")+u):A[Ca]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix(":"matrix(")+E+",0,0,"+F+","+H+","+I+")");if(n&&(q=1e-4,q>E&&E>-q&&(E=G=2e-5),q>F&&F>-q&&(F=G=2e-5),!M||z.z||z.rotationX||z.rotationY||(M=0)),B||P)B*=K,r=c=Math.cos(B),s=f=Math.sin(B),P&&(B-=P*K,r=Math.cos(B),s=Math.sin(B),"simple"===z.skewType&&(b=Math.tan((P-O)*K),b=Math.sqrt(1+b*b),r*=b,s*=b,z.skewY&&(b=Math.tan(O*K),b=Math.sqrt(1+b*b),c*=b,f*=b))),d=-s,g=r;else{if(!(D||C||1!==G||M||L))return void(A[Ca]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) translate3d(":"translate3d(")+H+"px,"+I+"px,"+J+"px)"+(1!==E||1!==F?" scale("+E+","+F+")":""));c=g=1,d=f=0}k=1,e=h=i=j=l=m=0,o=M?-1/M:0,p=z.zOrigin,q=1e-6,v=",",w="0",B=D*K,B&&(r=Math.cos(B),s=Math.sin(B),i=-s,l=o*-s,e=c*s,h=f*s,k=r,o*=r,c*=r,f*=r),B=C*K,B&&(r=Math.cos(B),s=Math.sin(B),b=d*r+e*s,t=g*r+h*s,j=k*s,m=o*s,e=d*-s+e*r,h=g*-s+h*r,k*=r,o*=r,d=b,g=t),1!==G&&(e*=G,h*=G,k*=G,o*=G),1!==F&&(d*=F,g*=F,j*=F,m*=F),1!==E&&(c*=E,f*=E,i*=E,l*=E),(p||L)&&(p&&(H+=e*-p,I+=h*-p,J+=k*-p+p),L&&(H+=z.xOrigin-(z.xOrigin*c+z.yOrigin*d)+z.xOffset,I+=z.yOrigin-(z.xOrigin*f+z.yOrigin*g)+z.yOffset),q>H&&H>-q&&(H=w),q>I&&I>-q&&(I=w),q>J&&J>-q&&(J=0)),u=z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix3d(":"matrix3d(",u+=(q>c&&c>-q?w:c)+v+(q>f&&f>-q?w:f)+v+(q>i&&i>-q?w:i),u+=v+(q>l&&l>-q?w:l)+v+(q>d&&d>-q?w:d)+v+(q>g&&g>-q?w:g),C||D||1!==G?(u+=v+(q>j&&j>-q?w:j)+v+(q>m&&m>-q?w:m)+v+(q>e&&e>-q?w:e),u+=v+(q>h&&h>-q?w:h)+v+(q>k&&k>-q?w:k)+v+(q>o&&o>-q?w:o)+v):u+=",0,0,0,0,1,0,",u+=H+v+I+v+J+v+(M?1+-J/M:1)+")",A[Ca]=u};j=Ga.prototype,j.x=j.y=j.z=j.skewX=j.skewY=j.rotation=j.rotationX=j.rotationY=j.zOrigin=j.xPercent=j.yPercent=j.xOffset=j.yOffset=0,j.scaleX=j.scaleY=j.scaleZ=1,ya("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent,smoothOrigin",{parser:function(a,b,c,d,f,h,i){if(d._lastParsedTransform===i)return f;d._lastParsedTransform=i;var j,k=i.scale&&"function"==typeof i.scale?i.scale:0;"function"==typeof i[c]&&(j=i[c],i[c]=b),k&&(i.scale=k(r,a));var l,m,n,o,p,s,t,u,v,w=a._gsTransform,x=a.style,y=1e-6,z=Ba.length,A=i,B={},C="transformOrigin",D=Ra(a,e,!0,A.parseTransform),E=A.transform&&("function"==typeof A.transform?A.transform(r,q):A.transform);if(d._transform=D,E&&"string"==typeof E&&Ca)m=Q.style,m[Ca]=E,m.display="block",m.position="absolute",O.body.appendChild(Q),l=Ra(Q,null,!1),D.svg&&(s=D.xOrigin,t=D.yOrigin,l.x-=D.xOffset,l.y-=D.yOffset,(A.transformOrigin||A.svgOrigin)&&(E={},La(a,ha(A.transformOrigin),E,A.svgOrigin,A.smoothOrigin,!0),s=E.xOrigin,t=E.yOrigin,l.x-=E.xOffset-D.xOffset,l.y-=E.yOffset-D.yOffset),(s||t)&&(u=Qa(Q,!0),l.x-=s-(s*u[0]+t*u[2]),l.y-=t-(s*u[1]+t*u[3]))),O.body.removeChild(Q),l.perspective||(l.perspective=D.perspective),null!=A.xPercent&&(l.xPercent=ja(A.xPercent,D.xPercent)),null!=A.yPercent&&(l.yPercent=ja(A.yPercent,D.yPercent));else if("object"==typeof A){if(l={scaleX:ja(null!=A.scaleX?A.scaleX:A.scale,D.scaleX),scaleY:ja(null!=A.scaleY?A.scaleY:A.scale,D.scaleY),scaleZ:ja(A.scaleZ,D.scaleZ),x:ja(A.x,D.x),y:ja(A.y,D.y),z:ja(A.z,D.z),xPercent:ja(A.xPercent,D.xPercent),yPercent:ja(A.yPercent,D.yPercent),perspective:ja(A.transformPerspective,D.perspective)},p=A.directionalRotation,null!=p)if("object"==typeof p)for(m in p)A[m]=p[m];else A.rotation=p;"string"==typeof A.x&&-1!==A.x.indexOf("%")&&(l.x=0,l.xPercent=ja(A.x,D.xPercent)),"string"==typeof A.y&&-1!==A.y.indexOf("%")&&(l.y=0,l.yPercent=ja(A.y,D.yPercent)),l.rotation=ka("rotation"in A?A.rotation:"shortRotation"in A?A.shortRotation+"_short":"rotationZ"in A?A.rotationZ:D.rotation,D.rotation,"rotation",B),Fa&&(l.rotationX=ka("rotationX"in A?A.rotationX:"shortRotationX"in A?A.shortRotationX+"_short":D.rotationX||0,D.rotationX,"rotationX",B),l.rotationY=ka("rotationY"in A?A.rotationY:"shortRotationY"in A?A.shortRotationY+"_short":D.rotationY||0,D.rotationY,"rotationY",B)),l.skewX=ka(A.skewX,D.skewX),l.skewY=ka(A.skewY,D.skewY)}for(Fa&&null!=A.force3D&&(D.force3D=A.force3D,o=!0),D.skewType=A.skewType||D.skewType||g.defaultSkewType,n=D.force3D||D.z||D.rotationX||D.rotationY||l.z||l.rotationX||l.rotationY||l.perspective,n||null==A.scale||(l.scaleZ=1);--z>-1;)v=Ba[z],E=l[v]-D[v],(E>y||-y>E||null!=A[v]||null!=M[v])&&(o=!0,f=new ta(D,v,D[v],E,f),v in B&&(f.e=B[v]),f.xs0=0,f.plugin=h,d._overwriteProps.push(f.n));return E=A.transformOrigin,D.svg&&(E||A.svgOrigin)&&(s=D.xOffset,t=D.yOffset,La(a,ha(E),l,A.svgOrigin,A.smoothOrigin),f=ua(D,"xOrigin",(w?D:l).xOrigin,l.xOrigin,f,C),f=ua(D,"yOrigin",(w?D:l).yOrigin,l.yOrigin,f,C),(s!==D.xOffset||t!==D.yOffset)&&(f=ua(D,"xOffset",w?s:D.xOffset,D.xOffset,f,C),f=ua(D,"yOffset",w?t:D.yOffset,D.yOffset,f,C)),E="0px 0px"),(E||Fa&&n&&D.zOrigin)&&(Ca?(o=!0,v=Ea,E=(E||_(a,v,e,!1,"50% 50%"))+"",f=new ta(x,v,0,0,f,-1,C),f.b=x[v],f.plugin=h,Fa?(m=D.zOrigin,E=E.split(" "),D.zOrigin=(E.length>2&&(0===m||"0px"!==E[2])?parseFloat(E[2]):m)||0,f.xs0=f.e=E[0]+" "+(E[1]||"50%")+" 0px",f=new ta(D,"zOrigin",0,0,f,-1,f.n),f.b=m,f.xs0=f.e=D.zOrigin):f.xs0=f.e=E):ha(E+"",D)),o&&(d._transformType=D.svg&&Aa||!n&&3!==this._transformType?2:3),j&&(i[c]=j),k&&(i.scale=k),f},prefix:!0}),ya("boxShadow",{defaultValue:"0px 0px 0px 0px #999",prefix:!0,color:!0,multi:!0,keyword:"inset"}),ya("borderRadius",{defaultValue:"0px",parser:function(a,b,c,f,g,h){b=this.format(b);var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],z=a.style;for(q=parseFloat(a.offsetWidth),r=parseFloat(a.offsetHeight),i=b.split(" "),j=0;jp?1:0))||""):(p=parseFloat(n),s=n.substr((p+"").length)),""===s&&(s=d[c]||t),s!==t&&(v=aa(a,"borderLeft",o,t),w=aa(a,"borderTop",o,t),"%"===s?(m=v/q*100+"%",l=w/r*100+"%"):"em"===s?(x=aa(a,"borderLeft",1,"em"),m=v/x+"em",l=w/x+"em"):(m=v+"px",l=w+"px"),u&&(n=parseFloat(m)+p+s,k=parseFloat(l)+p+s)),g=va(z,y[j],m+" "+l,n+" "+k,!1,"0px",g);return g},prefix:!0,formatter:qa("0px 0px 0px 0px",!1,!0)}),ya("borderBottomLeftRadius,borderBottomRightRadius,borderTopLeftRadius,borderTopRightRadius",{defaultValue:"0px",parser:function(a,b,c,d,f,g){return va(a.style,c,this.format(_(a,c,e,!1,"0px 0px")),this.format(b),!1,"0px",f)},prefix:!0,formatter:qa("0px 0px",!1,!0)}),ya("backgroundPosition",{defaultValue:"0 0",parser:function(a,b,c,d,f,g){var h,i,j,k,l,m,n="background-position",o=e||$(a,null),q=this.format((o?p?o.getPropertyValue(n+"-x")+" "+o.getPropertyValue(n+"-y"):o.getPropertyValue(n):a.currentStyle.backgroundPositionX+" "+a.currentStyle.backgroundPositionY)||"0 0"),r=this.format(b);if(-1!==q.indexOf("%")!=(-1!==r.indexOf("%"))&&r.split(",").length<2&&(m=_(a,"backgroundImage").replace(D,""),m&&"none"!==m)){for(h=q.split(" "),i=r.split(" "),R.setAttribute("src",m),j=2;--j>-1;)q=h[j],k=-1!==q.indexOf("%"),k!==(-1!==i[j].indexOf("%"))&&(l=0===j?a.offsetWidth-R.width:a.offsetHeight-R.height,h[j]=k?parseFloat(q)/100*l+"px":parseFloat(q)/l*100+"%");q=h.join(" ")}return this.parseComplex(a.style,q,r,f,g)},formatter:ha}),ya("backgroundSize",{defaultValue:"0 0",formatter:function(a){return a+="",ha(-1===a.indexOf(" ")?a+" "+a:a)}}),ya("perspective",{defaultValue:"0px",prefix:!0}),ya("perspectiveOrigin",{defaultValue:"50% 50%",prefix:!0}),ya("transformStyle",{prefix:!0}),ya("backfaceVisibility",{prefix:!0}),ya("userSelect",{prefix:!0}),ya("margin",{parser:ra("marginTop,marginRight,marginBottom,marginLeft")}),ya("padding",{parser:ra("paddingTop,paddingRight,paddingBottom,paddingLeft")}),ya("clip",{defaultValue:"rect(0px,0px,0px,0px)",parser:function(a,b,c,d,f,g){var h,i,j;return 9>p?(i=a.currentStyle,j=8>p?" ":",",h="rect("+i.clipTop+j+i.clipRight+j+i.clipBottom+j+i.clipLeft+")", b=this.format(b).split(",").join(j)):(h=this.format(_(a,this.p,e,!1,this.dflt)),b=this.format(b)),this.parseComplex(a.style,h,b,f,g)}}),ya("textShadow",{defaultValue:"0px 0px 0px #999",color:!0,multi:!0}),ya("autoRound,strictUnits",{parser:function(a,b,c,d,e){return e}}),ya("border",{defaultValue:"0px solid #000",parser:function(a,b,c,d,f,g){var h=_(a,"borderTopWidth",e,!1,"0px"),i=this.format(b).split(" "),j=i[0].replace(w,"");return"px"!==j&&(h=parseFloat(h)/aa(a,"borderTopWidth",1,j)+j),this.parseComplex(a.style,this.format(h+" "+_(a,"borderTopStyle",e,!1,"solid")+" "+_(a,"borderTopColor",e,!1,"#000")),i.join(" "),f,g)},color:!0,formatter:function(a){var b=a.split(" ");return b[0]+" "+(b[1]||"solid")+" "+(a.match(pa)||["#000"])[0]}}),ya("borderWidth",{parser:ra("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")}),ya("float,cssFloat,styleFloat",{parser:function(a,b,c,d,e,f){var g=a.style,h="cssFloat"in g?"cssFloat":"styleFloat";return new ta(g,h,0,0,e,-1,c,!1,0,g[h],b)}});var Ua=function(a){var b,c=this.t,d=c.filter||_(this.data,"filter")||"",e=this.s+this.c*a|0;100===e&&(-1===d.indexOf("atrix(")&&-1===d.indexOf("radient(")&&-1===d.indexOf("oader(")?(c.removeAttribute("filter"),b=!_(this.data,"filter")):(c.filter=d.replace(z,""),b=!0)),b||(this.xn1&&(c.filter=d=d||"alpha(opacity="+e+")"),-1===d.indexOf("pacity")?0===e&&this.xn1||(c.filter=d+" alpha(opacity="+e+")"):c.filter=d.replace(x,"opacity="+e))};ya("opacity,alpha,autoAlpha",{defaultValue:"1",parser:function(a,b,c,d,f,g){var h=parseFloat(_(a,"opacity",e,!1,"1")),i=a.style,j="autoAlpha"===c;return"string"==typeof b&&"="===b.charAt(1)&&(b=("-"===b.charAt(0)?-1:1)*parseFloat(b.substr(2))+h),j&&1===h&&"hidden"===_(a,"visibility",e)&&0!==b&&(h=0),U?f=new ta(i,"opacity",h,b-h,f):(f=new ta(i,"opacity",100*h,100*(b-h),f),f.xn1=j?1:0,i.zoom=1,f.type=2,f.b="alpha(opacity="+f.s+")",f.e="alpha(opacity="+(f.s+f.c)+")",f.data=a,f.plugin=g,f.setRatio=Ua),j&&(f=new ta(i,"visibility",0,0,f,-1,null,!1,0,0!==h?"inherit":"hidden",0===b?"hidden":"inherit"),f.xs0="inherit",d._overwriteProps.push(f.n),d._overwriteProps.push(c)),f}});var Va=function(a,b){b&&(a.removeProperty?(("ms"===b.substr(0,2)||"webkit"===b.substr(0,6))&&(b="-"+b),a.removeProperty(b.replace(B,"-$1").toLowerCase())):a.removeAttribute(b))},Wa=function(a){if(this.t._gsClassPT=this,1===a||0===a){this.t.setAttribute("class",0===a?this.b:this.e);for(var b=this.data,c=this.t.style;b;)b.v?c[b.p]=b.v:Va(c,b.p),b=b._next;1===a&&this.t._gsClassPT===this&&(this.t._gsClassPT=null)}else this.t.getAttribute("class")!==this.e&&this.t.setAttribute("class",this.e)};ya("className",{parser:function(a,b,d,f,g,h,i){var j,k,l,m,n,o=a.getAttribute("class")||"",p=a.style.cssText;if(g=f._classNamePT=new ta(a,d,0,0,g,2),g.setRatio=Wa,g.pr=-11,c=!0,g.b=o,k=ca(a,e),l=a._gsClassPT){for(m={},n=l.data;n;)m[n.p]=1,n=n._next;l.setRatio(1)}return a._gsClassPT=g,g.e="="!==b.charAt(1)?b:o.replace(new RegExp("(?:\\s|^)"+b.substr(2)+"(?![\\w-])"),"")+("+"===b.charAt(0)?" "+b.substr(2):""),a.setAttribute("class",g.e),j=da(a,k,ca(a),i,m),a.setAttribute("class",o),g.data=j.firstMPT,a.style.cssText=p,g=g.xfirst=f.parse(a,j.difs,g,h)}});var Xa=function(a){if((1===a||0===a)&&this.data._totalTime===this.data._totalDuration&&"isFromStart"!==this.data.data){var b,c,d,e,f,g=this.t.style,h=i.transform.parse;if("all"===this.e)g.cssText="",e=!0;else for(b=this.e.split(" ").join("").split(","),d=b.length;--d>-1;)c=b[d],i[c]&&(i[c].parse===h?e=!0:c="transformOrigin"===c?Ea:i[c].p),Va(g,c);e&&(Va(g,Ca),f=this.t._gsTransform,f&&(f.svg&&(this.t.removeAttribute("data-svg-origin"),this.t.removeAttribute("transform")),delete this.t._gsTransform))}};for(ya("clearProps",{parser:function(a,b,d,e,f){return f=new ta(a,d,0,0,f,2),f.setRatio=Xa,f.e=b,f.pr=-10,f.data=e._tween,c=!0,f}}),j="bezier,throwProps,physicsProps,physics2D".split(","),wa=j.length;wa--;)za(j[wa]);j=g.prototype,j._firstPT=j._lastParsedTransform=j._transform=null,j._onInitTween=function(a,b,h,j){if(!a.nodeType)return!1;this._target=q=a,this._tween=h,this._vars=b,r=j,k=b.autoRound,c=!1,d=b.suffixMap||g.suffixMap,e=$(a,""),f=this._overwriteProps;var n,p,s,t,u,v,w,x,z,A=a.style;if(l&&""===A.zIndex&&(n=_(a,"zIndex",e),("auto"===n||""===n)&&this._addLazySet(A,"zIndex",0)),"string"==typeof b&&(t=A.cssText,n=ca(a,e),A.cssText=t+";"+b,n=da(a,n,ca(a)).difs,!U&&y.test(b)&&(n.opacity=parseFloat(RegExp.$1)),b=n,A.cssText=t),b.className?this._firstPT=p=i.className.parse(a,b.className,"className",this,null,null,b):this._firstPT=p=this.parse(a,b,null),this._transformType){for(z=3===this._transformType,Ca?m&&(l=!0,""===A.zIndex&&(w=_(a,"zIndex",e),("auto"===w||""===w)&&this._addLazySet(A,"zIndex",0)),o&&this._addLazySet(A,"WebkitBackfaceVisibility",this._vars.WebkitBackfaceVisibility||(z?"visible":"hidden"))):A.zoom=1,s=p;s&&s._next;)s=s._next;x=new ta(a,"transform",0,0,null,2),this._linkCSSP(x,null,s),x.setRatio=Ca?Ta:Sa,x.data=this._transform||Ra(a,e,!0),x.tween=h,x.pr=-1,f.pop()}if(c){for(;p;){for(v=p._next,s=t;s&&s.pr>p.pr;)s=s._next;(p._prev=s?s._prev:u)?p._prev._next=p:t=p,(p._next=s)?s._prev=p:u=p,p=v}this._firstPT=t}return!0},j.parse=function(a,b,c,f){var g,h,j,l,m,n,o,p,s,t,u=a.style;for(g in b)n=b[g],"function"==typeof n&&(n=n(r,q)),h=i[g],h?c=h.parse(a,n,g,this,c,f,b):(m=_(a,g,e)+"",s="string"==typeof n,"color"===g||"fill"===g||"stroke"===g||-1!==g.indexOf("Color")||s&&A.test(n)?(s||(n=na(n),n=(n.length>3?"rgba(":"rgb(")+n.join(",")+")"),c=va(u,g,m,n,!0,"transparent",c,0,f)):s&&J.test(n)?c=va(u,g,m,n,!0,null,c,0,f):(j=parseFloat(m),o=j||0===j?m.substr((j+"").length):"",(""===m||"auto"===m)&&("width"===g||"height"===g?(j=ga(a,g,e),o="px"):"left"===g||"top"===g?(j=ba(a,g,e),o="px"):(j="opacity"!==g?0:1,o="")),t=s&&"="===n.charAt(1),t?(l=parseInt(n.charAt(0)+"1",10),n=n.substr(2),l*=parseFloat(n),p=n.replace(w,"")):(l=parseFloat(n),p=s?n.replace(w,""):""),""===p&&(p=g in d?d[g]:o),n=l||0===l?(t?l+j:l)+p:b[g],o!==p&&""!==p&&(l||0===l)&&j&&(j=aa(a,g,j,o),"%"===p?(j/=aa(a,g,100,"%")/100,b.strictUnits!==!0&&(m=j+"%")):"em"===p||"rem"===p||"vw"===p||"vh"===p?j/=aa(a,g,1,p):"px"!==p&&(l=aa(a,g,l,p),p="px"),t&&(l||0===l)&&(n=l+j+p)),t&&(l+=j),!j&&0!==j||!l&&0!==l?void 0!==u[g]&&(n||n+""!="NaN"&&null!=n)?(c=new ta(u,g,l||j||0,0,c,-1,g,!1,0,m,n),c.xs0="none"!==n||"display"!==g&&-1===g.indexOf("Style")?n:m):W("invalid "+g+" tween value: "+b[g]):(c=new ta(u,g,j,l-j,c,0,g,k!==!1&&("px"===p||"zIndex"===g),0,m,n),c.xs0=p))),f&&c&&!c.plugin&&(c.plugin=f);return c},j.setRatio=function(a){var b,c,d,e=this._firstPT,f=1e-6;if(1!==a||this._tween._time!==this._tween._duration&&0!==this._tween._time)if(a||this._tween._time!==this._tween._duration&&0!==this._tween._time||this._tween._rawPrevTime===-1e-6)for(;e;){if(b=e.c*a+e.s,e.r?b=Math.round(b):f>b&&b>-f&&(b=0),e.type)if(1===e.type)if(d=e.l,2===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2;else if(3===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3;else if(4===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4;else if(5===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4+e.xn4+e.xs5;else{for(c=e.xs0+b+e.xs1,d=1;d-1;)Za(a[e],b,c);else for(d=a.childNodes,e=d.length;--e>-1;)f=d[e],g=f.type,f.style&&(b.push(ca(f)),c&&c.push(f)),1!==g&&9!==g&&11!==g||!f.childNodes.length||Za(f,b,c)};return g.cascadeTo=function(a,c,d){var e,f,g,h,i=b.to(a,c,d),j=[i],k=[],l=[],m=[],n=b._internals.reservedProps;for(a=i._targets||i.target,Za(a,k,m),i.render(c,!0,!0),Za(a,l),i.render(0,!0,!0),i._enabled(!0),e=m.length;--e>-1;)if(f=da(m[e],k[e],l[e]),f.firstMPT){f=f.difs;for(g in d)n[g]&&(f[g]=d[g]);h={};for(g in f)h[g]=k[e][g];j.push(b.fromTo(m[e],c,h,f))}return j},a.activate([g]),g},!0)}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()(),function(a){"use strict";var b=function(){return(_gsScope.GreenSockGlobals||_gsScope)[a]};"function"==typeof define&&define.amd?define(["TweenLite"],b):"undefined"!=typeof module&&module.exports&&(require("../TweenLite.js"),module.exports=b())}("CSSPlugin"); /* SPLIT TEXT UTIL */ /*! * VERSION: 0.5.6 * DATE: 2017-01-17 * UPDATES AND DOCS AT: http://greensock.com * * @license Copyright (c) 2008-2017, GreenSock. All rights reserved. * SplitText is a Club GreenSock membership benefit; You must have a valid membership to use * this code without violating the terms of use. Visit http://greensock.com/club/ to sign up or get more details. * This work is subject to the software agreement that was issued with your membership. * * @author: Jack Doyle, jack@greensock.com */ var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;!function(a){"use strict";var b=a.GreenSockGlobals||a,c=function(a){var c,d=a.split("."),e=b;for(c=0;cb;b++)if(c=a[b],j(c))for(d=c.length,d=0;d":">")}},y=d.SplitText=b.SplitText=function(a,b){if("string"==typeof a&&(a=y.selector(a)),!a)throw"cannot split a null element.";this.elements=j(a)?k(a):[a],this.chars=[],this.words=[],this.lines=[],this._originals=[],this.vars=b||{},this.split(b)},z=function(a,b,c){var d=a.nodeType;if(1===d||9===d||11===d)for(a=a.firstChild;a;a=a.nextSibling)z(a,b,c);else(3===d||4===d)&&(a.nodeValue=a.nodeValue.split(b).join(c))},A=function(a,b){for(var c=b.length;--c>-1;)a.push(b[c])},B=function(a){var b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return c},C=function(a,b,c){for(var d;a&&a!==b;){if(d=a._next||a.nextSibling)return d.textContent.charAt(0)===c;a=a.parentNode||a._parent}return!1},D=function(a){var b,c,d=B(a.childNodes),e=d.length;for(b=0;e>b;b++)c=d[b],c._isSplit?D(c):(b&&3===c.previousSibling.nodeType?c.previousSibling.nodeValue+=3===c.nodeType?c.nodeValue:c.firstChild.nodeValue:3!==c.nodeType&&a.insertBefore(c.firstChild,c),a.removeChild(c))},E=function(a,b,c,d,e,h,j){var k,l,m,n,o,p,q,r,s,t,u,v,w=g(a),x=i(a,"paddingLeft",w),y=-999,B=i(a,"borderBottomWidth",w)+i(a,"borderTopWidth",w),E=i(a,"borderLeftWidth",w)+i(a,"borderRightWidth",w),F=i(a,"paddingTop",w)+i(a,"paddingBottom",w),G=i(a,"paddingLeft",w)+i(a,"paddingRight",w),H=.2*i(a,"fontSize"),I=i(a,"textAlign",w,!0),J=[],K=[],L=[],M=b.wordDelimiter||" ",N=b.span?"span":"div",O=b.type||b.split||"chars,words,lines",P=e&&-1!==O.indexOf("lines")?[]:null,Q=-1!==O.indexOf("words"),R=-1!==O.indexOf("chars"),S="absolute"===b.position||b.absolute===!0,T=b.linesClass,U=-1!==(T||"").indexOf("++"),V=[];for(P&&1===a.children.length&&a.children[0]._isSplit&&(a=a.children[0]),U&&(T=T.split("++").join("")),l=a.getElementsByTagName("*"),m=l.length,o=[],k=0;m>k;k++)o[k]=l[k];if(P||S)for(k=0;m>k;k++)n=o[k],p=n.parentNode===a,(p||S||R&&!Q)&&(v=n.offsetTop,P&&p&&Math.abs(v-y)>H&&"BR"!==n.nodeName&&(q=[],P.push(q),y=v),S&&(n._x=n.offsetLeft,n._y=v,n._w=n.offsetWidth,n._h=n.offsetHeight),P&&((n._isSplit&&p||!R&&p||Q&&p||!Q&&n.parentNode.parentNode===a&&!n.parentNode._isSplit)&&(q.push(n),n._x-=x,C(n,a,M)&&(n._wordEnd=!0)),"BR"===n.nodeName&&n.nextSibling&&"BR"===n.nextSibling.nodeName&&P.push([])));for(k=0;m>k;k++)n=o[k],p=n.parentNode===a,"BR"!==n.nodeName?(S&&(s=n.style,Q||p||(n._x+=n.parentNode._x,n._y+=n.parentNode._y),s.left=n._x+"px",s.top=n._y+"px",s.position="absolute",s.display="block",s.width=n._w+1+"px",s.height=n._h+"px"),!Q&&R?n._isSplit?(n._next=n.nextSibling,n.parentNode.appendChild(n)):n.parentNode._isSplit?(n._parent=n.parentNode,!n.previousSibling&&n.firstChild&&(n.firstChild._isFirst=!0),n.nextSibling&&" "===n.nextSibling.textContent&&!n.nextSibling.nextSibling&&V.push(n.nextSibling),n._next=n.nextSibling&&n.nextSibling._isFirst?null:n.nextSibling,n.parentNode.removeChild(n),o.splice(k--,1),m--):p||(v=!n.nextSibling&&C(n.parentNode,a,M),n.parentNode._parent&&n.parentNode._parent.appendChild(n),v&&n.parentNode.appendChild(f.createTextNode(" ")),b.span&&(n.style.display="inline"),J.push(n)):n.parentNode._isSplit&&!n._isSplit&&""!==n.innerHTML?K.push(n):R&&!n._isSplit&&(b.span&&(n.style.display="inline"),J.push(n))):P||S?(n.parentNode&&n.parentNode.removeChild(n),o.splice(k--,1),m--):Q||a.appendChild(n);for(k=V.length;--k>-1;)V[k].parentNode.removeChild(V[k]);if(P){for(S&&(t=f.createElement(N),a.appendChild(t),u=t.offsetWidth+"px",v=t.offsetParent===a?0:a.offsetLeft,a.removeChild(t)),s=a.style.cssText,a.style.cssText="display:none;";a.firstChild;)a.removeChild(a.firstChild);for(r=" "===M&&(!S||!Q&&!R),k=0;kl;l++)"BR"!==q[l].nodeName&&(n=q[l],t.appendChild(n),r&&n._wordEnd&&t.appendChild(f.createTextNode(" ")),S&&(0===l&&(t.style.top=n._y+"px",t.style.left=x+v+"px"),n.style.top="0px",v&&(n.style.left=n._x-v+"px")));0===m?t.innerHTML=" ":Q||R||(D(t),z(t,String.fromCharCode(160)," ")),S&&(t.style.width=u,t.style.height=n._h+"px"),a.appendChild(t)}a.style.cssText=s}S&&(j>a.clientHeight&&(a.style.height=j-F+"px",a.clientHeighta.clientWidth&&(a.style.width=h-G+"px",a.clientWidth":"
    ",G=!0,H=f.createElement("div"),I=a.parentNode;for(I.insertBefore(H,a),H.textContent=a.nodeValue,I.removeChild(a),a=H,g=e(a),v=-1!==g.indexOf("<"),b.reduceWhiteSpace!==!1&&(g=g.replace(m," ").replace(l,"")),v&&(g=g.split("<").join("{{LT}}")),k=g.length,h=(" "===g.charAt(0)?E:"")+c(),i=0;k>i;i++)if(p=g.charAt(i),p===D&&g.charAt(i-1)!==D&&i){for(h+=G?F:"",G=!1;g.charAt(i+1)===D;)h+=E,i++;i===k-1?h+=E:")"!==g.charAt(i+1)&&(h+=E+c(),G=!0)}else"{"===p&&"{{LT}}"===g.substr(i,6)?(h+=B?d()+"{{LT}}":"{{LT}}",i+=5):p.charCodeAt(0)>=n&&p.charCodeAt(0)<=o||g.charCodeAt(i+1)>=65024&&g.charCodeAt(i+1)<=65039?(w=u(g.substr(i,2)),x=u(g.substr(i+2,2)),j=w>=q&&r>=w&&x>=q&&r>=x||x>=s&&t>=x?4:2,h+=B&&" "!==p?d()+g.substr(i,j)+"":g.substr(i,j),i+=j-1):h+=B&&" "!==p?d()+p+"":p;a.outerHTML=h+(G?F:""),v&&z(I,"{{LT}}","<")},G=function(a,b,c,d){var e,f,g=B(a.childNodes),h=g.length,j="absolute"===b.position||b.absolute===!0;if(3!==a.nodeType||h>1){for(b.absolute=!1,e=0;h>e;e++)f=g[e],(3!==f.nodeType||/\S+/.test(f.nodeValue))&&(j&&3!==f.nodeType&&"inline"===i(f,"display",null,!0)&&(f.style.display="inline-block",f.style.position="relative"),f._isSplit=!0,G(f,b,c,d));return b.absolute=j,void(a._isSplit=!0)}F(a,b,c,d)},H=y.prototype;H.split=function(a){this.isSplit&&this.revert(),this.vars=a=a||this.vars,this._originals.length=this.chars.length=this.words.length=this.lines.length=0;for(var b,c,d,e=this.elements.length,f=a.span?"span":"div",g=("absolute"===a.position||a.absolute===!0,x(a.wordsClass,f)),h=x(a.charsClass,f);--e>-1;)d=this.elements[e],this._originals[e]=d.innerHTML,b=d.clientHeight,c=d.clientWidth,G(d,a,g,h),E(d,a,this.chars,this.words,this.lines,c,b);return this.chars.reverse(),this.words.reverse(),this.lines.reverse(),this.isSplit=!0,this},H.revert=function(){if(!this._originals)throw"revert() call wasn't scoped properly.";for(var a=this._originals.length;--a>-1;)this.elements[a].innerHTML=this._originals[a];return this.chars=[],this.words=[],this.lines=[],this.isSplit=!1,this},y.selector=a.$||a.jQuery||function(b){var c=a.$||a.jQuery;return c?(y.selector=c,c(b)):"undefined"==typeof document?b:document.querySelectorAll?document.querySelectorAll(b):document.getElementById("#"===b.charAt(0)?b.substr(1):b)},y.version="0.5.6"}(_gsScope),function(a){"use strict";var b=function(){return(_gsScope.GreenSockGlobals||_gsScope)[a]};"function"==typeof define&&define.amd?define([],b):"undefined"!=typeof module&&module.exports&&(module.exports=b())}("SplitText"); try{ window.GreenSockGlobals = null; window._gsQueue = null; window._gsDefine = null; delete(window.GreenSockGlobals); delete(window._gsQueue); delete(window._gsDefine); } catch(e) {} try{ window.GreenSockGlobals = oldgs; window._gsQueue = oldgs_queue; } catch(e) {} if (window.tplogs==true) try { console.groupEnd(); } catch(e) {} (function(e,t){ e.waitForImages={hasImageProperties:["backgroundImage","listStyleImage","borderImage","borderCornerImage"]};e.expr[":"].uncached=function(t){var n=document.createElement("img");n.src=t.src;return e(t).is('img[src!=""]')&&!n.complete};e.fn.waitForImages=function(t,n,r){if(e.isPlainObject(arguments[0])){n=t.each;r=t.waitForAll;t=t.finished}t=t||e.noop;n=n||e.noop;r=!!r;if(!e.isFunction(t)||!e.isFunction(n)){throw new TypeError("An invalid callback was supplied.")}return this.each(function(){var i=e(this),s=[];if(r){var o=e.waitForImages.hasImageProperties||[],u=/url\((['"]?)(.*?)\1\)/g;i.find("*").each(function(){var t=e(this);if(t.is("img:uncached")){s.push({src:t.attr("src"),element:t[0]})}e.each(o,function(e,n){var r=t.css(n);if(!r){return true}var i;while(i=u.exec(r)){s.push({src:i[2],element:t[0]})}})})}else{i.find("img:uncached").each(function(){s.push({src:this.src,element:this})})}var f=s.length,l=0;if(f==0){t.call(i[0])}e.each(s,function(r,s){var o=new Image;e(o).bind("load error",function(e){l++;n.call(s.element,l,f,e.type=="load");if(l==f){t.call(i[0]);return false}});o.src=s.src})})}; })(jQuery); // source --> https://herbifeet.com/wp-content/plugins/revslider/public/assets/js/jquery.themepunch.revolution.min.js?ver=5.4.6.4 /************************************************************************** * jquery.themepunch.revolution.js - jQuery Plugin for Revolution Slider * @version: 5.4.6.4 (28.11.2017) * @requires jQuery v1.7 or later (tested on 1.9) * @author ThemePunch **************************************************************************/ !function(jQuery,undefined){"use strict";var version={core:"5.4.6.4","revolution.extensions.actions.min.js":"2.1.0","revolution.extensions.carousel.min.js":"1.2.1","revolution.extensions.kenburn.min.js":"1.3.1","revolution.extensions.layeranimation.min.js":"3.6.4","revolution.extensions.navigation.min.js":"1.3.3","revolution.extensions.parallax.min.js":"2.2.0","revolution.extensions.slideanims.min.js":"1.7","revolution.extensions.video.min.js":"2.2.0"};jQuery.fn.extend({revolution:function(e){var i={delay:9e3,responsiveLevels:4064,visibilityLevels:[2048,1024,778,480],gridwidth:960,gridheight:500,minHeight:0,autoHeight:"off",sliderType:"standard",sliderLayout:"auto",fullScreenAutoWidth:"off",fullScreenAlignForce:"off",fullScreenOffsetContainer:"",fullScreenOffset:"0",hideCaptionAtLimit:0,hideAllCaptionAtLimit:0,hideSliderAtLimit:0,disableProgressBar:"off",stopAtSlide:-1,stopAfterLoops:-1,shadow:0,dottedOverlay:"none",startDelay:0,lazyType:"smart",spinner:"spinner0",shuffle:"off",viewPort:{enable:!1,outof:"wait",visible_area:"60%",presize:!1},fallbacks:{isJoomla:!1,panZoomDisableOnMobile:"off",simplifyAll:"on",nextSlideOnWindowFocus:"off",disableFocusListener:!0,ignoreHeightChanges:"off",ignoreHeightChangesSize:0,allowHTML5AutoPlayOnAndroid:!0},parallax:{type:"off",levels:[10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85],origo:"enterpoint",speed:400,bgparallax:"off",opacity:"on",disable_onmobile:"off",ddd_shadow:"on",ddd_bgfreeze:"off",ddd_overflow:"visible",ddd_layer_overflow:"visible",ddd_z_correction:65,ddd_path:"mouse"},scrolleffect:{fade:"off",blur:"off",scale:"off",grayscale:"off",maxblur:10,on_layers:"off",on_slidebg:"off",on_static_layers:"off",on_parallax_layers:"off",on_parallax_static_layers:"off",direction:"both",multiplicator:1.35,multiplicator_layers:.5,tilt:30,disable_on_mobile:"on"},carousel:{easing:punchgs.Power3.easeInOut,speed:800,showLayersAllTime:"off",horizontal_align:"center",vertical_align:"center",infinity:"on",space:0,maxVisibleItems:3,stretch:"off",fadeout:"on",maxRotation:0,minScale:0,vary_fade:"off",vary_rotation:"on",vary_scale:"off",border_radius:"0px",padding_top:0,padding_bottom:0},navigation:{keyboardNavigation:"off",keyboard_direction:"horizontal",mouseScrollNavigation:"off",onHoverStop:"on",touch:{touchenabled:"off",touchOnDesktop:"off",swipe_treshold:75,swipe_min_touches:1,drag_block_vertical:!1,swipe_direction:"horizontal"},arrows:{style:"",enable:!1,hide_onmobile:!1,hide_onleave:!0,hide_delay:200,hide_delay_mobile:1200,hide_under:0,hide_over:9999,tmp:"",rtl:!1,left:{h_align:"left",v_align:"center",h_offset:20,v_offset:0,container:"slider"},right:{h_align:"right",v_align:"center",h_offset:20,v_offset:0,container:"slider"}},bullets:{container:"slider",rtl:!1,style:"",enable:!1,hide_onmobile:!1,hide_onleave:!0,hide_delay:200,hide_delay_mobile:1200,hide_under:0,hide_over:9999,direction:"horizontal",h_align:"left",v_align:"center",space:0,h_offset:20,v_offset:0,tmp:''},thumbnails:{container:"slider",rtl:!1,style:"",enable:!1,width:100,height:50,min_width:100,wrapper_padding:2,wrapper_color:"#f5f5f5",wrapper_opacity:1,tmp:'',visibleAmount:5,hide_onmobile:!1,hide_onleave:!0,hide_delay:200,hide_delay_mobile:1200,hide_under:0,hide_over:9999,direction:"horizontal",span:!1,position:"inner",space:2,h_align:"left",v_align:"center",h_offset:20,v_offset:0},tabs:{container:"slider",rtl:!1,style:"",enable:!1,width:100,min_width:100,height:50,wrapper_padding:10,wrapper_color:"#f5f5f5",wrapper_opacity:1,tmp:'',visibleAmount:5,hide_onmobile:!1,hide_onleave:!0,hide_delay:200,hide_delay_mobile:1200,hide_under:0,hide_over:9999,direction:"horizontal",span:!1,space:0,position:"inner",h_align:"left",v_align:"center",h_offset:20,v_offset:0}},extensions:"extensions/",extensions_suffix:".min.js",debugMode:!1};return e=jQuery.extend(!0,{},i,e),this.each(function(){var i=jQuery(this);e.minHeight=e.minHeight!=undefined?parseInt(e.minHeight,0):e.minHeight,e.scrolleffect.on="on"===e.scrolleffect.fade||"on"===e.scrolleffect.scale||"on"===e.scrolleffect.blur||"on"===e.scrolleffect.grayscale,"hero"==e.sliderType&&i.find(">ul>li").each(function(e){e>0&&jQuery(this).remove()}),e.jsFileLocation=e.jsFileLocation||getScriptLocation("themepunch.revolution.min.js"),e.jsFileLocation=e.jsFileLocation+e.extensions,e.scriptsneeded=getNeededScripts(e,i),e.curWinRange=0,e.rtl=!0,e.navigation!=undefined&&e.navigation.touch!=undefined&&(e.navigation.touch.swipe_min_touches=e.navigation.touch.swipe_min_touches>5?1:e.navigation.touch.swipe_min_touches),jQuery(this).on("scriptsloaded",function(){if(e.modulesfailing)return i.html('
    !! Error at loading Slider Revolution 5.0 Extrensions.'+e.errorm+"
    ").show(),!1;_R.migration!=undefined&&(e=_R.migration(i,e)),punchgs.force3D=!0,"on"!==e.simplifyAll&&punchgs.TweenLite.lagSmoothing(1e3,16),prepareOptions(i,e),initSlider(i,e)}),i[0].opt=e,waitForScripts(i,e)})},getRSVersion:function(e){if(!0===e)return jQuery("body").data("tp_rs_version");var i=jQuery("body").data("tp_rs_version"),t="";t+="---------------------------------------------------------\n",t+=" Currently Loaded Slider Revolution & SR Modules :\n",t+="---------------------------------------------------------\n";for(var a in i)t+=i[a].alias+": "+i[a].ver+"\n";return t+="---------------------------------------------------------\n"},revremoveslide:function(e){return this.each(function(){var i=jQuery(this),t=i[0].opt;if(!(e<0||e>t.slideamount)&&i!=undefined&&i.length>0&&jQuery("body").find("#"+i.attr("id")).length>0&&t&&t.li.length>0&&(e>0||e<=t.li.length)){var a=jQuery(t.li[e]),n=a.data("index"),r=!1;t.slideamount=t.slideamount-1,t.realslideamount=t.realslideamount-1,removeNavWithLiref(".tp-bullet",n,t),removeNavWithLiref(".tp-tab",n,t),removeNavWithLiref(".tp-thumb",n,t),a.hasClass("active-revslide")&&(r=!0),a.remove(),t.li=removeArray(t.li,e),t.carousel&&t.carousel.slides&&(t.carousel.slides=removeArray(t.carousel.slides,e)),t.thumbs=removeArray(t.thumbs,e),_R.updateNavIndexes&&_R.updateNavIndexes(t),r&&i.revnext(),punchgs.TweenLite.set(t.li,{minWidth:"99%"}),punchgs.TweenLite.set(t.li,{minWidth:"100%"})}})},revaddcallback:function(e){return this.each(function(){this.opt&&(this.opt.callBackArray===undefined&&(this.opt.callBackArray=new Array),this.opt.callBackArray.push(e))})},revgetparallaxproc:function(){return jQuery(this)[0].opt.scrollproc},revdebugmode:function(){return this.each(function(){var e=jQuery(this);e[0].opt.debugMode=!0,containerResized(e,e[0].opt)})},revscroll:function(e){return this.each(function(){var i=jQuery(this);jQuery("body,html").animate({scrollTop:i.offset().top+i.height()-e+"px"},{duration:400})})},revredraw:function(e){return this.each(function(){var e=jQuery(this);containerResized(e,e[0].opt)})},revkill:function(e){var i=this,t=jQuery(this);if(punchgs.TweenLite.killDelayedCallsTo(_R.showHideNavElements),t!=undefined&&t.length>0&&jQuery("body").find("#"+t.attr("id")).length>0){t.data("conthover",1),t.data("conthover-changed",1),t.trigger("revolution.slide.onpause");var a=t.parent().find(".tp-bannertimer"),n=t[0].opt;n.tonpause=!0,t.trigger("stoptimer");r="resize.revslider-"+t.attr("id");jQuery(window).unbind(r),punchgs.TweenLite.killTweensOf(t.find("*"),!1),punchgs.TweenLite.killTweensOf(t,!1),t.unbind("hover, mouseover, mouseenter,mouseleave, resize");var r="resize.revslider-"+t.attr("id");jQuery(window).off(r),t.find("*").each(function(){var e=jQuery(this);e.unbind("on, hover, mouseenter,mouseleave,mouseover, resize,restarttimer, stoptimer"),e.off("on, hover, mouseenter,mouseleave,mouseover, resize"),e.data("mySplitText",null),e.data("ctl",null),e.data("tween")!=undefined&&e.data("tween").kill(),e.data("kenburn")!=undefined&&e.data("kenburn").kill(),e.data("timeline_out")!=undefined&&e.data("timeline_out").kill(),e.data("timeline")!=undefined&&e.data("timeline").kill(),e.remove(),e.empty(),e=null}),punchgs.TweenLite.killTweensOf(t.find("*"),!1),punchgs.TweenLite.killTweensOf(t,!1),a.remove();try{t.closest(".forcefullwidth_wrapper_tp_banner").remove()}catch(e){}try{t.closest(".rev_slider_wrapper").remove()}catch(e){}try{t.remove()}catch(e){}return t.empty(),t.html(),t=null,n=null,delete i.c,delete i.opt,delete i.container,!0}return!1},revpause:function(){return this.each(function(){var e=jQuery(this);e!=undefined&&e.length>0&&jQuery("body").find("#"+e.attr("id")).length>0&&(e.data("conthover",1),e.data("conthover-changed",1),e.trigger("revolution.slide.onpause"),e[0].opt.tonpause=!0,e.trigger("stoptimer"))})},revresume:function(){return this.each(function(){var e=jQuery(this);e!=undefined&&e.length>0&&jQuery("body").find("#"+e.attr("id")).length>0&&(e.data("conthover",0),e.data("conthover-changed",1),e.trigger("revolution.slide.onresume"),e[0].opt.tonpause=!1,e.trigger("starttimer"))})},revstart:function(){var e=jQuery(this);if(e!=undefined&&e.length>0&&jQuery("body").find("#"+e.attr("id")).length>0&&e[0].opt!==undefined)return e[0].opt.sliderisrunning?(console.log("Slider Is Running Already"),!1):(e[0].opt.c=e,e[0].opt.ul=e.find(">ul"),runSlider(e,e[0].opt),!0)},revnext:function(){return this.each(function(){var e=jQuery(this);e!=undefined&&e.length>0&&jQuery("body").find("#"+e.attr("id")).length>0&&_R.callingNewSlide(e,1)})},revprev:function(){return this.each(function(){var e=jQuery(this);e!=undefined&&e.length>0&&jQuery("body").find("#"+e.attr("id")).length>0&&_R.callingNewSlide(e,-1)})},revmaxslide:function(){return jQuery(this).find(".tp-revslider-mainul >li").length},revcurrentslide:function(){var e=jQuery(this);if(e!=undefined&&e.length>0&&jQuery("body").find("#"+e.attr("id")).length>0)return parseInt(e[0].opt.act,0)+1},revlastslide:function(){return jQuery(this).find(".tp-revslider-mainul >li").length},revshowslide:function(e){return this.each(function(){var i=jQuery(this);i!=undefined&&i.length>0&&jQuery("body").find("#"+i.attr("id")).length>0&&_R.callingNewSlide(i,"to"+(e-1))})},revcallslidewithid:function(e){return this.each(function(){var i=jQuery(this);i!=undefined&&i.length>0&&jQuery("body").find("#"+i.attr("id")).length>0&&_R.callingNewSlide(i,e)})}});var _R=jQuery.fn.revolution;jQuery.extend(!0,_R,{getversion:function(){return version},compare_version:function(e){var i=jQuery("body").data("tp_rs_version");return(i=i===undefined?new Object:i).Core===undefined&&(i.Core=new Object,i.Core.alias="Slider Revolution Core",i.Core.name="jquery.themepunch.revolution.min.js",i.Core.ver=_R.getversion().core),"stop"!=e.check&&(_R.getversion().core').appendTo(jQuery("body"));t.html("\x3c!--[if "+(i||"")+" IE "+(e||"")+"]> 1&&(i=!0);return i},is_android:function(){var e=["android","Android"],i=!1;for(var t in e)navigator.userAgent.split(e[t]).length>1&&(i=!0);return i},callBackHandling:function(e,i,t){try{e.callBackArray&&jQuery.each(e.callBackArray,function(e,a){a&&a.inmodule&&a.inmodule===i&&a.atposition&&a.atposition===t&&a.callback&&a.callback.call()})}catch(e){console.log("Call Back Failed")}},get_browser:function(){var e,i=navigator.appName,t=navigator.userAgent,a=t.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);return a&&null!=(e=t.match(/version\/([\.\d]+)/i))&&(a[2]=e[1]),(a=a?[a[1],a[2]]:[i,navigator.appVersion,"-?"])[0]},get_browser_version:function(){var e,i=navigator.appName,t=navigator.userAgent,a=t.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);return a&&null!=(e=t.match(/version\/([\.\d]+)/i))&&(a[2]=e[1]),(a=a?[a[1],a[2]]:[i,navigator.appVersion,"-?"])[1]},isSafari11:function(){return"safari"===jQuery.trim(_R.get_browser().toLowerCase())&&parseFloat(_R.get_browser_version())>=11},getHorizontalOffset:function(e,i){var t=gWiderOut(e,".outer-left"),a=gWiderOut(e,".outer-right");switch(i){case"left":return t;case"right":return a;case"both":return t+a}},callingNewSlide:function(e,i){var t=e.find(".next-revslide").length>0?e.find(".next-revslide").index():e.find(".processing-revslide").length>0?e.find(".processing-revslide").index():e.find(".active-revslide").index(),a=0,n=e[0].opt;e.find(".next-revslide").removeClass("next-revslide"),e.find(".active-revslide").hasClass("tp-invisible-slide")&&(t=n.last_shown_slide),i&&jQuery.isNumeric(i)||i.match(/to/g)?(a=1===i||-1===i?(a=t+i)<0?n.slideamount-1:a>=n.slideamount?0:a:(i=jQuery.isNumeric(i)?i:parseInt(i.split("to")[1],0))<0?0:i>n.slideamount-1?n.slideamount-1:i,e.find(".tp-revslider-slidesli:eq("+a+")").addClass("next-revslide")):i&&e.find(".tp-revslider-slidesli").each(function(){var e=jQuery(this);e.data("index")===i&&e.addClass("next-revslide")}),a=e.find(".next-revslide").index(),e.trigger("revolution.nextslide.waiting"),t===a&&t===n.last_shown_slide||a!==t&&-1!=a?swapSlide(e):e.find(".next-revslide").removeClass("next-revslide")},slotSize:function(e,i){i.slotw=Math.ceil(i.width/i.slots),"fullscreen"==i.sliderLayout?i.sloth=Math.ceil(jQuery(window).height()/i.slots):i.sloth=Math.ceil(i.height/i.slots),"on"==i.autoHeight&&e!==undefined&&""!==e&&(i.sloth=Math.ceil(e.height()/i.slots))},setSize:function(e){var i=(e.top_outer||0)+(e.bottom_outer||0),t=parseInt(e.carousel.padding_top||0,0),a=parseInt(e.carousel.padding_bottom||0,0),n=e.gridheight[e.curWinRange],r=0,o=-1===e.nextSlide||e.nextSlide===undefined?0:e.nextSlide;if(e.paddings=e.paddings===undefined?{top:parseInt(e.c.parent().css("paddingTop"),0)||0,bottom:parseInt(e.c.parent().css("paddingBottom"),0)||0}:e.paddings,e.rowzones&&e.rowzones.length>0)for(var s=0;se.gridheight[e.curWinRange]&&"on"!=e.autoHeight&&(e.height=e.gridheight[e.curWinRange]),"fullscreen"==e.sliderLayout||e.infullscreenmode){e.height=e.bw*e.gridheight[e.curWinRange];e.c.parent().width();var l=jQuery(window).height();if(e.fullScreenOffsetContainer!=undefined){try{var d=e.fullScreenOffsetContainer.split(",");d&&jQuery.each(d,function(e,i){l=jQuery(i).length>0?l-jQuery(i).outerHeight(!0):l})}catch(e){}try{e.fullScreenOffset.split("%").length>1&&e.fullScreenOffset!=undefined&&e.fullScreenOffset.length>0?l-=jQuery(window).height()*parseInt(e.fullScreenOffset,0)/100:e.fullScreenOffset!=undefined&&e.fullScreenOffset.length>0&&(l-=parseInt(e.fullScreenOffset,0))}catch(e){}}l=lparseInt(e.height,0)?r:e.height}else e.minHeight!=undefined&&e.heightparseInt(e.height,0)?r:e.height,e.c.height(e.height);var c={height:t+a+i+e.height+e.paddings.top+e.paddings.bottom};e.c.closest(".forcefullwidth_wrapper_tp_banner").find(".tp-fullwidth-forcer").css(c),e.c.closest(".rev_slider_wrapper").css(c),setScale(e)},enterInViewPort:function(e){e.waitForCountDown&&(countDown(e.c,e),e.waitForCountDown=!1),e.waitForFirstSlide&&(swapSlide(e.c),e.waitForFirstSlide=!1,setTimeout(function(){e.c.removeClass("tp-waitforfirststart")},500)),"playing"!=e.sliderlaststatus&&e.sliderlaststatus!=undefined||e.c.trigger("starttimer"),e.lastplayedvideos!=undefined&&e.lastplayedvideos.length>0&&jQuery.each(e.lastplayedvideos,function(i,t){_R.playVideo(t,e)})},leaveViewPort:function(e){e.sliderlaststatus=e.sliderstatus,e.c.trigger("stoptimer"),e.playingvideos!=undefined&&e.playingvideos.length>0&&(e.lastplayedvideos=jQuery.extend(!0,[],e.playingvideos),e.playingvideos&&jQuery.each(e.playingvideos,function(i,t){e.leaveViewPortBasedStop=!0,_R.stopVideo&&_R.stopVideo(t,e)}))},unToggleState:function(e){e!=undefined&&e.length>0&&jQuery.each(e,function(e,i){i.removeClass("rs-toggle-content-active")})},toggleState:function(e){e!=undefined&&e.length>0&&jQuery.each(e,function(e,i){i.addClass("rs-toggle-content-active")})},swaptoggleState:function(e){e!=undefined&&e.length>0&&jQuery.each(e,function(e,i){jQuery(i).hasClass("rs-toggle-content-active")?jQuery(i).removeClass("rs-toggle-content-active"):jQuery(i).addClass("rs-toggle-content-active")})},lastToggleState:function(e){var i=0;return e!=undefined&&e.length>0&&jQuery.each(e,function(e,t){i=t.hasClass("rs-toggle-content-active")}),i}});var _ISM=_R.is_mobile(),_ANDROID=_R.is_android(),checkIDS=function(e,i){if(e.anyid=e.anyid===undefined?[]:e.anyid,-1!=jQuery.inArray(i.attr("id"),e.anyid)){var t=i.attr("id")+"_"+Math.round(9999*Math.random());i.attr("id",t)}e.anyid.push(i.attr("id"))},removeArray=function(e,i){var t=[];return jQuery.each(e,function(e,a){e!=i&&t.push(a)}),t},removeNavWithLiref=function(e,i,t){t.c.find(e).each(function(){var e=jQuery(this);e.data("liref")===i&&e.remove()})},lAjax=function(e,i){return!jQuery("body").data(e)&&(i.filesystem?(i.errorm===undefined&&(i.errorm="
    Local Filesystem Detected !
    Put this to your header:"),console.warn("Local Filesystem detected !"),i.errorm=i.errorm+'
    <script type="text/javascript" src="'+i.jsFileLocation+e+i.extensions_suffix+'"></script>',console.warn(i.jsFileLocation+e+i.extensions_suffix+" could not be loaded !"),console.warn("Please use a local Server or work online or make sure that you load all needed Libraries manually in your Document."),console.log(" "),i.modulesfailing=!0,!1):(jQuery.ajax({url:i.jsFileLocation+e+i.extensions_suffix+"?version="+version.core,dataType:"script",cache:!0,error:function(t){console.warn("Slider Revolution 5.0 Error !"),console.error("Failure at Loading:"+e+i.extensions_suffix+" on Path:"+i.jsFileLocation),console.info(t)}}),void jQuery("body").data(e,!0)))},getNeededScripts=function(e,i){var t=new Object,a=e.navigation;return t.kenburns=!1,t.parallax=!1,t.carousel=!1,t.navigation=!1,t.videos=!1,t.actions=!1,t.layeranim=!1,t.migration=!1,i.data("version")&&i.data("version").toString().match(/5./gi)?(i.find("img").each(function(){"on"==jQuery(this).data("kenburns")&&(t.kenburns=!0)}),("carousel"==e.sliderType||"on"==a.keyboardNavigation||"on"==a.mouseScrollNavigation||"on"==a.touch.touchenabled||a.arrows.enable||a.bullets.enable||a.thumbnails.enable||a.tabs.enable)&&(t.navigation=!0),i.find(".tp-caption, .tp-static-layer, .rs-background-video-layer").each(function(){var e=jQuery(this);(e.data("ytid")!=undefined||e.find("iframe").length>0&&e.find("iframe").attr("src").toLowerCase().indexOf("youtube")>0)&&(t.videos=!0),(e.data("vimeoid")!=undefined||e.find("iframe").length>0&&e.find("iframe").attr("src").toLowerCase().indexOf("vimeo")>0)&&(t.videos=!0),e.data("actions")!==undefined&&(t.actions=!0),t.layeranim=!0}),i.find("li").each(function(){jQuery(this).data("link")&&jQuery(this).data("link")!=undefined&&(t.layeranim=!0,t.actions=!0)}),!t.videos&&(i.find(".rs-background-video-layer").length>0||i.find(".tp-videolayer").length>0||i.find(".tp-audiolayer").length>0||i.find("iframe").length>0||i.find("video").length>0)&&(t.videos=!0),"carousel"==e.sliderType&&(t.carousel=!0),("off"!==e.parallax.type||e.viewPort.enable||"true"==e.viewPort.enable||"true"===e.scrolleffect.on||e.scrolleffect.on)&&(t.parallax=!0)):(t.kenburns=!0,t.parallax=!0,t.carousel=!1,t.navigation=!0,t.videos=!0,t.actions=!0,t.layeranim=!0,t.migration=!0),"hero"==e.sliderType&&(t.carousel=!1,t.navigation=!1),window.location.href.match(/file:/gi)&&(t.filesystem=!0,e.filesystem=!0),t.videos&&void 0===_R.isVideoPlaying&&lAjax("revolution.extension.video",e),t.carousel&&void 0===_R.prepareCarousel&&lAjax("revolution.extension.carousel",e),t.carousel||void 0!==_R.animateSlide||lAjax("revolution.extension.slideanims",e),t.actions&&void 0===_R.checkActions&&lAjax("revolution.extension.actions",e),t.layeranim&&void 0===_R.handleStaticLayers&&lAjax("revolution.extension.layeranimation",e),t.kenburns&&void 0===_R.stopKenBurn&&lAjax("revolution.extension.kenburn",e),t.navigation&&void 0===_R.createNavigation&&lAjax("revolution.extension.navigation",e),t.migration&&void 0===_R.migration&&lAjax("revolution.extension.migration",e),t.parallax&&void 0===_R.checkForParallax&&lAjax("revolution.extension.parallax",e),e.addons!=undefined&&e.addons.length>0&&jQuery.each(e.addons,function(i,t){"object"==typeof t&&t.fileprefix!=undefined&&lAjax(t.fileprefix,e)}),t},waitForScripts=function(e,i){var t=!0,a=i.scriptsneeded;i.addons!=undefined&&i.addons.length>0&&jQuery.each(i.addons,function(e,i){"object"==typeof i&&i.init!=undefined&&_R[i.init]===undefined&&(t=!1)}),a.filesystem||"undefined"!=typeof punchgs&&t&&(!a.kenburns||a.kenburns&&void 0!==_R.stopKenBurn)&&(!a.navigation||a.navigation&&void 0!==_R.createNavigation)&&(!a.carousel||a.carousel&&void 0!==_R.prepareCarousel)&&(!a.videos||a.videos&&void 0!==_R.resetVideo)&&(!a.actions||a.actions&&void 0!==_R.checkActions)&&(!a.layeranim||a.layeranim&&void 0!==_R.handleStaticLayers)&&(!a.migration||a.migration&&void 0!==_R.migration)&&(!a.parallax||a.parallax&&void 0!==_R.checkForParallax)&&(a.carousel||!a.carousel&&void 0!==_R.animateSlide)?e.trigger("scriptsloaded"):setTimeout(function(){waitForScripts(e,i)},50)},getScriptLocation=function(e){var i=new RegExp("themepunch.revolution.min.js","gi"),t="";return jQuery("script").each(function(){var e=jQuery(this).attr("src");e&&e.match(i)&&(t=e)}),t=t.replace("jquery.themepunch.revolution.min.js",""),t=t.replace("jquery.themepunch.revolution.js",""),t=t.split("?")[0]},setCurWinRange=function(e,i){var t=9999,a=0,n=0,r=0,o=jQuery(window).width(),s=i&&9999==e.responsiveLevels?e.visibilityLevels:e.responsiveLevels;s&&s.length&&jQuery.each(s,function(e,i){oi)&&(t=i,r=e,a=i),o>i&&a'),container.find(">ul").addClass("tp-revslider-mainul"),opt.c=container,opt.ul=container.find(".tp-revslider-mainul"),opt.ul.find(">li").each(function(e){var i=jQuery(this);"on"==i.data("hideslideonmobile")&&_ISM&&i.remove(),(i.data("invisible")||!0===i.data("invisible"))&&(i.addClass("tp-invisible-slide"),i.appendTo(opt.ul))}),opt.addons!=undefined&&opt.addons.length>0&&jQuery.each(opt.addons,function(i,obj){"object"==typeof obj&&obj.init!=undefined&&_R[obj.init](eval(obj.params))}),opt.cid=container.attr("id"),opt.ul.css({visibility:"visible"}),opt.slideamount=opt.ul.find(">li").not(".tp-invisible-slide").length,opt.realslideamount=opt.ul.find(">li").length,opt.slayers=container.find(".tp-static-layers"),opt.slayers.data("index","staticlayers"),1!=opt.waitForInit&&(container[0].opt=opt,runSlider(container,opt))},onFullScreenChange=function(){jQuery("body").data("rs-fullScreenMode",!jQuery("body").data("rs-fullScreenMode")),jQuery("body").data("rs-fullScreenMode")&&setTimeout(function(){jQuery(window).trigger("resize")},200)},runSlider=function(e,i){if(i.sliderisrunning=!0,i.ul.find(">li").each(function(e){jQuery(this).data("originalindex",e)}),i.allli=i.ul.find(">li"),jQuery.each(i.allli,function(e,i){(i=jQuery(i)).data("origindex",i.index())}),i.li=i.ul.find(">li").not(".tp-invisible-slide"),"on"==i.shuffle){var t=new Object,a=i.ul.find(">li:first-child");t.fstransition=a.data("fstransition"),t.fsmasterspeed=a.data("fsmasterspeed"),t.fsslotamount=a.data("fsslotamount");for(var n=0;nli:eq("+r+")").prependTo(i.ul)}var o=i.ul.find(">li:first-child");o.data("fstransition",t.fstransition),o.data("fsmasterspeed",t.fsmasterspeed),o.data("fsslotamount",t.fsslotamount),i.allli=i.ul.find(">li"),i.li=i.ul.find(">li").not(".tp-invisible-slide")}if(i.inli=i.ul.find(">li.tp-invisible-slide"),i.thumbs=new Array,i.slots=4,i.act=-1,i.firststart=1,i.loadqueue=new Array,i.syncload=0,i.conw=e.width(),i.conh=e.height(),i.responsiveLevels.length>1?i.responsiveLevels[0]=9999:i.responsiveLevels=9999,jQuery.each(i.allli,function(e,t){var a=(t=jQuery(t)).find(".rev-slidebg")||t.find("img").first(),n=0;t.addClass("tp-revslider-slidesli"),t.data("index")===undefined&&t.data("index","rs-"+Math.round(999999*Math.random()));var r=new Object;r.params=new Array,r.id=t.data("index"),r.src=t.data("thumb")!==undefined?t.data("thumb"):a.data("lazyload")!==undefined?a.data("lazyload"):a.attr("src"),t.data("title")!==undefined&&r.params.push({from:RegExp("\\{\\{title\\}\\}","g"),to:t.data("title")}),t.data("description")!==undefined&&r.params.push({from:RegExp("\\{\\{description\\}\\}","g"),to:t.data("description")});for(n=1;n<=10;n++)t.data("param"+n)!==undefined&&r.params.push({from:RegExp("\\{\\{param"+n+"\\}\\}","g"),to:t.data("param"+n)});if(i.thumbs.push(r),t.data("link")!=undefined){var o=t.data("link"),s=t.data("target")||"_self",l="back"===t.data("slideindex")?0:60,d=t.data("linktoslide"),c=d;d!=undefined&&"next"!=d&&"prev"!=d&&i.allli.each(function(){var e=jQuery(this);e.data("origindex")+1==c&&(d=e.data("index"))}),"slide"!=o&&(d="no");var u='